在string中执行函数

时间:2011-03-20 10:43:47

标签: php

每个人都知道在PHP中你可以这样做:

$m = "my string is {$string}";

但这可能与功能有关吗?像:

$m = "my string is {getStringValue()}";

4 个答案:

答案 0 :(得分:1)

这是不可能的(并且它也不会非常易读,特别是如果函数有参数)。

您可以使用sprintf

 $m = sprintf("my string is %s", getStringValue());

答案 1 :(得分:1)

{$..}中的字符串扩展稍微超出了能够执行函数的范围。我例如使用gettext。但你也可以使用这样的技巧:

$html = "htmlentities";    // any callback function
// or just: $html = function($s){ return $s; }

print "even allows expressions {$html(2+3*5+rand(2,17))} here";

这是可能的,因为PHP允许任何 变量表达式,以支持简单的对象表示法案例:

print "this isn't just a {$obj->prop} string variable";

例如,我正在使用一个实现ArrayAccess的对象,即使这是一个方法调用:

print "Makes some things {$_GET->ascii->html['input']} simpler";

我们在SO上有过一些这样的话题,但对于我的生活,我找不到一个好的参考......

答案 2 :(得分:0)

答案 3 :(得分:0)

连接,如果我很清楚你想要做什么:

$m = "my string is {".getStringValue()."}";