function foobar(){
echo "<hr />";
return "hello world";
}
echo <<<TOKEN
<p> 第一种:${foobar()} </p>
<p> 第二种:{${foobar()}} </p>
TOKEN;
输出结果为:
<hr /><hr />
<p> 第一种: </p>
<p> 第二种: </p>
请问我return的hello world哪里去了?
官方 复杂(花括号)语法 的代码例子中有这么调用过: http://php.net/manual/zh/language.types.string.php
1
FelixXie 2017 年 6 月 21 日
$helloworld 没有定义啊。
|
2
klgd 2017 年 6 月 21 日
你为什么要加“$”?
|
3
nullen 2017 年 6 月 21 日
好像是楼主自己的锅?
|
4
mooncakejs 2017 年 6 月 21 日 via iPhone
从 nodejs 过来的?
|
5
vus520 2017 年 6 月 21 日
function foobar(){
echo "<hr />"; echo "hello world"; } return 并不是输出,只是返回 |
8
bombless 2017 年 6 月 21 日 ……你没看仔细吧
https://3v4l.org/EAgOC |
9
iguoji OP @vus520
官方代码例子有这么一行 ```php echo "This is the value of the var named by the return value of getName(): {${getName()}}"; ``` 但他没有给出具体`getName()`函数的定义,所以我认为这个函数会返回一个字符串,然后拼接在这整个 echo 语句中。 |
10
bombless 2017 年 6 月 21 日 getName()返回的不是字符串,它返回的是一个本地变量的变量名
|
11
U7Q5tLAex2FI0o0g 2017 年 6 月 21 日 楼主没有认真看手册的结果
$aa = 'aaaa'; $bb = 'bbbb'; function foo() { return 'aa'; } echo ${foo()}; // aaaa 因为 foo 返回的是 aa,所以打印的是$aa,即 aaaa,而不是打印'aa' |
12
meanmachine 2017 年 6 月 21 日 via Android @iguoji 这将会返回一个变量名由 getName()返回值得到的的变量值
|
14
mokeyjay 2017 年 6 月 21 日 看起来你不知道 $$var 的用法。
$a = 'b'; $b = '233'; echo $$a; // output: '233' 同理,你的 foobar()应该返回一个变量名。例如你首先要定义: $hello_world = 'Hello World'; 然后再定义一个函数返回这个 变量名 : function footbar(){ return 'hello_world'; } 最后再: echo <<<EOT <p> 第二种:{${footbar()}} </p> EOT; 这样才能输出你想要的结果 |
17
hexiaolu 2017 年 6 月 21 日
我就想知道,有哪个蛋疼的 phper 会这样用? 不把他喷死我就不是一个合格 html 工程师。
|
18
mingyun 2017 年 6 月 22 日
这种特性工作中还是别用了
|