【发布时间】:2017-07-12 10:43:23
【问题描述】:
如何配置 PHP 7 以在将项目推送到字符串时产生错误,例如:
$items = '';
$items[] = 'test';
这可能吗?
【问题讨论】:
如何配置 PHP 7 以在将项目推送到字符串时产生错误,例如:
$items = '';
$items[] = 'test';
这可能吗?
【问题讨论】:
在 PHP 5.6 和 7.0 中,将包含空字符串的变量转换为这样的数组是有效的。因此,您需要提供自己的验证才能产生异常。
function checkAndAssign($var, $val){
if (is_string($var)){
throw new ErrorException('Do not assign array item to a string');
}
return $val;
}
$items = '';
try{
$items[] = checkAndAssign($items, 'test');
}catch(Exception $e){
echo $e->getMessage();
return;
}
var_dump($items);
结果:
不要将数组项分配给字符串
在 PHP 7.1 中,这会产生致命错误。如果您想尝试,问题How do I catch a PHP Fatal Error 已经有一个很好的答案。
【讨论】: