从字符串中调用PHP函数

时间:2014-11-18 08:48:57

标签: php

我找不到一个解决方法,如何将单引号和双引号结合起来回显HTML并同时调用一个函数:

foreach ($result as $r) { 
    echo "<a href='get_permalink(get_page($r->id))'>".get_permalink(get_page($r->id)).'</a><br>';
}

问题是这部分被解析为文本,而不是php

"<a href='get_permalink(get_page($r->id))'>"

Cansome有人帮我把这个结合起来? get_permalinks和get page是wordpress内置的函数,因此它们应该具有函数行为

4 个答案:

答案 0 :(得分:2)

您无法在双"引号内调用函数。

foreach ($result as $r)
        { 
            echo "<a href='".get_permalink(get_page($r->id))."'>".get_permalink(get_page($r->id)).'</a><br>';
        }

答案 1 :(得分:2)

当它在字符串中时运行PHP代码是不可能的(除非使用eval)。但是,您可以使用printf()将代码与字符串分开:

$url = get_permalink(get_page($r->id));
printf('<a href="%s">%1$s</a><br>', htmlspecialchars($url, ENT_QUOTES, 'UTF-8'));

%1$s是位置格式说明符;这样做是为了使编码的$url值只需传递一次。

答案 2 :(得分:1)

像这样连接字符串:

echo "<a href='". get_permalink(get_page($r->id)) . "'>" . get_permalink(get_page($r->id)) . "</a><br>";

此外,如果您想知道单引号和双引号之间的区别,请参阅: What is the difference between single-quoted and double-quoted strings in PHP?

答案 3 :(得分:0)

尝试这种方式:

if($result as $r)
{ 
  echo "<a href='" . get_permalink(get_page($r->id)) . "'>" . get_permalink(get_page($r->id)) . '</a><br>';
}