Лучшим объяснением является оператор ==
, преобразующий элемент массива в int , так как левая часть оператора была массивом с int.
Поскольку оба intval('not zero')
и (int) 'not zero'
вернут 0, сравнение вернет true, поскольку оно равно 0 (как можно видеть здесь ).
При использовании ===
PHP не выполняет приведение типов, поэтомустрока остается строкой, поэтому сравнение не выполняется (из операторов PHP ):
===
: ИСТИНА, если $ a и $ b имеют одинаковые пары ключ / значение в одинаковыхи того же типов .