如果我有这个功能
<?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];
答案 0 :(得分:3)
echo func()[0].func()[1].func()[2]; // executed 3 times
或:
$res = func(); // executed one time
echo $res[0].$res[1].$res[2];
每次在函数名称后面读()
时,这意味着将调用该函数(当然不是在定义时)
答案 1 :(得分:1)
它只被调用一次,结果被复制到$array
。在第二个例子中,它被调用了三次。