Wil*_*One 5 php string string-interpolation
最近我正在阅读php文档,并在字符串部分找到了有趣的注释:
自PHP 5起,{$}内的函数,方法调用,静态类变量和类常量工作.但是,访问的值将被解释为定义字符串的作用域中变量的名称.使用单个花括号({})将无法访问函数或方法的返回值或类常量或静态类变量的值.
见www.php.net/manual/en/language.types.string.php
它说,我不能使用卷曲语法来获取object的方法调用返回的值.这是手动错误还是我误解了它,因为我尝试了下面的代码,它运行得很好:
<?php
class HelloWorld
{
public static function hello()
{
echo 'hello';
}
}
$a = new HelloWorld();
echo "{$a->hello()} world";
Run Code Online (Sandbox Code Playgroud)
我从这个解释中了解到的是,压力在于
\n\n\n\n\n(\xe2\x80\xa6) 使用单个花括号\xe2\x80\xa6
\n
所以在这个例子中我认为它想说的是:
\n\necho "I\'d like an {$beers::$ale}\\n";不会工作,因此单花括号。
\n这就是为什么你应该使用双大括号,第一个大括号将返回静态输出,第二个大括号将返回最终输出,如示例所示:
echo "I\'d like an {${beers::$ale}}\\n";\n ^ ^ ^^\nRun Code Online (Sandbox Code Playgroud)\n