函数是否仅发生一次如果定义为变量?

时间:2018-03-07 14:39:09

标签: php function

如果我有这个功能

<?php
function func() {
  return ['a', 'b', 'c'];
}
?>

如果我这样称呼它

$array = func();
echo $array[0].$array[1].$array[2];

该功能是仅将一次复制调用到$array?或者它是否需要每个$array[x]

与此类似的定义是否有任何不同

echo func()[0].func()[1].func()[2];

2 个答案:

答案 0 :(得分:3)

echo func()[0].func()[1].func()[2]; // executed 3 times

或:

$res = func(); // executed one time
echo $res[0].$res[1].$res[2];

每次在函数名称后面读()时,这意味着将调用该函数(当然不是在定义时)

https://www.w3schools.com/php/php_functions.asp

http://php.net/manual/en/language.functions.php

答案 1 :(得分:1)

它只被调用一次,结果被复制到$array。在第二个例子中,它被调用了三次。