是否可以在以下代码中收到警告?
error_reporting(E_ALL);
$s = array(
'a' => '1',
'a' => '1'
);
var_export( $s );
答案 0 :(得分:1)
你唯一的希望(除了count
- 你自己)是你的编辑很聪明,可以突出显示错字。此屏幕截图来自PHPStorm:
答案 1 :(得分:0)
在这种情况下使用标准数组无法真正抛出错误。但是,当您更新/重新声明属性时,可以查看扩展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