当我们试图赋值/访问数组的未定义索引时,PHP会抛出一个通知:
<?php
$array = array(0=>array('title'=>'Titre','content'=>array()));
$value = $array[1]['content']; // assignment, warning is issued
警告:第5行/home/user/scripts/code.php中的数组键1未定义
但是,当使用未定义的索引作为引用时,不会发出任何警告。看起来,引用未定义的数组元素将在您使用该引用时创建该元素,而不会发出任何警告。
我怎样才能改变这个行为,使PHP实际上抛出一个警告/通知,表明索引是未定义的?
x一个一个一个一个x一个一个二个x
1条答案
按热度按时间nhhxz33t1#
我怎样才能改变这个行为,使PHP实际上抛出一个警告/通知,表明索引是未定义的?
显而易见的答案是先检查一下:
但我认为一个更优雅的解决方案是在PHP 8中引入的throw-as-expression特性中使用空合并操作符。这将阻止它发生,这可能是您所希望的:
如果您希望允许这种情况发生,并且只报告它,则生成错误而不是异常: