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    ……你没看仔细吧 
                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    getName()返回的不是字符串,它返回的是一个本地变量的变量名 
                 | 
            
     11 
                    
                    U7Q5tLAex2FI0o0g      2017-06-21 10:56:25 +08:00    楼主没有认真看手册的结果 
                $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    @iguoji 这将会返回一个变量名由 getName()返回值得到的的变量值 
                 | 
            
     14 
                    
                    mokeyjay      2017-06-21 10:58:36 +08:00    看起来你不知道 $$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 
                    
                    这种特性工作中还是别用了 
                 |