如果一定要传递数组的引用,PHP7 里面咋整(已解)
图中代码在浏览器中可以正常运行,但是跑到 PHP 里面却成了死循环。因为数组在 js 中是按引用传值的,但在 PHP 中却是按值传递的。
使用 & 符合可以强制数组传递引用,如下所示
function fetch($arr)
{
return array_pop($arr);
}
function exist($n)
{
return $n ?: false;
}
$arr = array(1, 2, 3, 4, 5, 6); // v5.3 不能使用 []
while (exist(fetch(&$arr))) { // 必须加上 &
print_r($arr);
}
但是这么做的缺点很明显,首先定义数组比较麻烦,不能使用 [ ] 了。更重要的是使用 & 传递引用的办法只能适用于 PHP5.3 及以下的版本
如果一定要传递数组的引用,PHP7、8 里面咋整?感谢 php_yt 指点迷津!虽然高级版本不支持调用时加 & 的写法,但却支持函数定义时添加 & 的写法(详细代码如4楼所示)
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: