2017-02-22 17 views

ответ

2

В 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, если вы хотите это сделать.