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-06-21 10:42:22 +08:00
$helloworld 没有定义啊。
|
2
klgd 2017-06-21 10:43:38 +08:00
你为什么要加“$”?
|
3
nullen 2017-06-21 10:44:07 +08:00
好像是楼主自己的锅?
|
4
mooncakejs 2017-06-21 10:44:59 +08:00 via iPhone
从 nodejs 过来的?
|
5
vus520 2017-06-21 10:47:17 +08:00
function foobar(){
echo "<hr />"; echo "hello world"; } return 并不是输出,只是返回 |
7
iguoji OP @klgd echo 输出里 $和{是配合一起使用的,如果缺少其中一个,输出的会直接是"{foobar()}",而没有将其解析
|
8
bombless 2017-06-21 10:50:25 +08:00 2
……你没看仔细吧
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-06-21 10:53:45 +08:00 1
getName()返回的不是字符串,它返回的是一个本地变量的变量名
|
11
littleylv 2017-06-21 10:56:25 +08:00 1
楼主没有认真看手册的结果
$aa = 'aaaa'; $bb = 'bbbb'; function foo() { return 'aa'; } echo ${foo()}; // aaaa 因为 foo 返回的是 aa,所以打印的是$aa,即 aaaa,而不是打印'aa' |
12
meanmachine 2017-06-21 10:57:25 +08:00 via Android 1
@iguoji 这将会返回一个变量名由 getName()返回值得到的的变量值
|
14
mokeyjay 2017-06-21 10:58:36 +08:00 1
看起来你不知道 $$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-06-21 17:47:05 +08:00
我就想知道,有哪个蛋疼的 phper 会这样用? 不把他喷死我就不是一个合格 html 工程师。
|
18
mingyun 2017-06-22 21:53:28 +08:00
这种特性工作中还是别用了
|