Php 数组\推送到引用变量导致语法错误
我做PHP已经有一段时间了;但是,一些我认为曾经有用的东西似乎不适用于PHP7Php 数组\推送到引用变量导致语法错误,php,scope,Php,Scope,我做PHP已经有一段时间了;但是,一些我认为曾经有用的东西似乎不适用于PHP7 $list = array (); while ( ($data = fgetcsv($handle) ) !== FALSE ) { $row = array (); $row[0] = 1; array_push(&$list,$row); } 由于“Parse error:syntax error,unexpected'&',这似乎失败了。但是,如果我从$list数组中去掉&的话,由于作用
$list = array ();
while ( ($data = fgetcsv($handle) ) !== FALSE ) {
$row = array ();
$row[0] = 1;
array_push(&$list,$row);
}
由于“Parse error:syntax error,unexpected'&',这似乎失败了。但是,如果我从$list数组中去掉&的话,由于作用域的原因,$row数组将不会在其中。在PHP7中,如何处理这一点发生了变化吗?如果您试图推送对
$row
的引用,它应该是:
$list[] = &$row;
引用语法不能用于函数调用,只能用于赋值。分配给一个数组,后跟
[]
相当于array\u push()
如果您试图推送对$row
的引用,则它应该是:
$list[] = &$row;
引用语法不能用于函数调用,只能用于赋值。分配给一个数组,后跟
[]
相当于array\u push()
尝试更改!==到!=。布尔比较不需要额外的“=”。示例中不应该存在范围问题,可能还有其他问题。不需要&
。一旦你创建了一个引用变量,你就可以正常使用它了。去掉&off,然后调试脚本。调用时间传递引用在PHP5.4(iirc)中被删除了。听起来好像很长时间了。试着改变一下!==到!=。布尔比较不需要额外的“=”。示例中不应该存在范围问题,可能还有其他问题。不需要&
。一旦你创建了一个引用变量,你就可以正常使用它了。去掉&off,然后调试脚本。调用时间传递引用在PHP5.4(iirc)中被删除了。听起来好像很长时间了。