0

我刚刚尝试了以下方法:

<?php
$script = <<<HEREDOC
    var delUrl = '{ScriptManager::getDelUrl()}';
HEREDOC;

echo $script;
?>

在浏览器中我得到:

// Used by JS
var delUrl = '{ScriptManager::getDelUrl()}';

输出不是看到静态调用的结果,而是ScriptManager::getDelUrl()文字 PHP。有没有办法让静态调用在 HEREDOC 内部得到评估,可能不需要在 HEREDOC 之前将它们的值分配给变量?

4

1 回答 1

0

我演示了一个静态调用,但在一个对象上。

这必须在最新版本的 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);
于 2013-08-04T16:04:23.200 回答