Задать вопрос
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

Надежна ли функция is_array?

Безопасная ли php функция is_array?
то есть, есть ли гарантия что если прилетает НЕ массив по любому вернет FALSE?
  • Вопрос задан
  • 193 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
Melkij
@Melkij
PostgreSQL DBA
На примере PHP5.6.14
ext/standard/type.c PHP_FUNCTION(is_array) вызывает php_is_type (функция определена там же, чуть выше)
Та проверяет на равенство Z_TYPE_PP(arg).
Z_TYPE_PP, соответственно, макрос из Zend/zend_operators.h
#define Z_TYPE(zval)		(zval).type
#define Z_TYPE_P(zval_p)	Z_TYPE(*zval_p)
#define Z_TYPE_PP(zval_pp)	Z_TYPE(**zval_pp)

Как видим, прямое обращение к полю type базовой для zend'а структуры zval. Ну а уж оно врать не может, это или IS_ARRAY и is_array даст true или что-то другое и результатом будет false.
Ответ написан
Комментировать
вполне
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы