函数和变量执行优先级

时间:2015-11-06 02:08:46

标签: php function variables operator-precedence

我尝试打印一个与函数调用连接的简单变量,这就是我得到的!

 <?php 
 $hello = "Hello ";
 function test(){
   echo "This is a function!! ";
 }
 echo $hello.test();
 ?>

这里echo打印由函数调用连接的变量hello,因此应该输出Hello This is a function!!,而输出是This is a function!! Hello

  • 这是如何工作的,有人可以解释这种行为吗?

1 个答案:

答案 0 :(得分:3)

test()是一个void函数(它什么都不返回)所以echo没有字符串可以立即回显,函数调用的优先级高于dot,所以首先要计算它并且在返回之前自己回显它做字符串连接。

  

返回“这是一个功能!!”;

..将使用您原来的点连接格式(正如其他人指出的那样)。

或者,将回波线更改为:

  

echo $ hello,test();

..也有效。 $ hello是一个字符串并被回显,〜然后~test()得到评估。