是否有可能在以下代码中收到警告?
error_reporting(E_ALL);
$s = array(
'a' => '1',
'a' => '1'
);
var_export( $s );
是否有可能在以下代码中收到警告?
error_reporting(E_ALL);
$s = array(
'a' => '1',
'a' => '1'
);
var_export( $s );
您唯一的希望(除了count
-ing 自己)是您的编辑器足够聪明,可以突出显示错字。此屏幕截图来自 PHPStorm:
在这种情况下,您不能使用标准数组真正引发错误。但是,您可以查看扩展 SPL ArrayObject,并在更新/重新声明属性时在其中抛出错误。
更新:类似的东西:
class MyStrictArray extends ArrayObject
{
public function offsetSet($index, $value)
{
if ($this->offsetExists($index)) {
trigger_error("Can't redeclare a property", E_USER_ERROR);
return;
}
return parent::offsetSet($index, $value);
}
}
// and to use it.
$array = new MyStrictArray();
$array['a'] = 'foo';
$array['a'] = 'bar'; // triggers error