我刚刚尝试了以下几种方法:
<?php
$script = <<<HEREDOC
var delUrl = '{ScriptManager::getDelUrl()}';
HEREDOC;
echo $script;
?>在浏览器中,我得到了:
// Used by JS
var delUrl = '{ScriptManager::getDelUrl()}';输出是文字ScriptManager::getDelUrl(),而不是静态调用PHP的结果。有没有一种方法可以让静态调用在HEREDOC中得到计算,而不需要在HEREDOC之前将它们的值赋给一个变量?
发布于 2013-08-05 00:04:23
我演示了一个静态调用,但是是在一个对象上。
这必须在最新版本的PHP上完成,他们最近让它变得更加复杂。计算了ln4和ln5的计算结果。有没有可能有对象,而不是类?
<?php
error_reporting(-1);
print("this is PHP".phpversion()."\n");
$a=1;
class b {
public $c=3;
public static function d() {
return 4;
}
}
$e=new b();
$t=<<<EOSAMPLE
hwllo world $a
ln1 {b->$c}
ln3 {b::d()}
ln4 {$e::d()}
ln5 {$e->d()}
ln2 {$e->c}
EOSAMPLE;
print($t);
$t=<<<'EOSAMPLE'
hwllo world $a
ln1 {b->$c}
ln3 {b::d()}
ln4 {$e::d()}
ln5 {$e->d()}
ln2 {$e->c}
EOSAMPLE;
print($t);
$t=<<<"EOSAMPLE"
hwllo world $a
ln1 {b->$c}
ln3 {b::d()}
ln4 {$e::d()}
ln5 {$e->d()}
ln2 {$e->c}
EOSAMPLE;
print($t);https://stackoverflow.com/questions/18043042
复制相似问题