【问题标题】:PHP7 produce error when array push is used on a string当对字符串使用数组推送时,PHP7 会产生错误
【发布时间】:2017-07-12 10:43:23
【问题描述】:

如何配置 PHP 7 以在将项目推送到字符串时产生错误,例如:

$items = '';
$items[] = 'test';

这可能吗?

【问题讨论】:

    标签: php-7 strict


    【解决方案1】:

    在 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 已经有一个很好的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 2020-12-17
      • 1970-01-01
      • 2016-02-24
      相关资源
      最近更新 更多