Задать вопрос

Как отличить строку от функции в php?

Допустим у меня есть переменная со строкой 'min'. Строка совпадает с именем стандартной функции. Как мне узнать что данные в переменной — именно строка, а не функция? gettype() вернет string (в том числе и для лямбда функций, что меня не устраивает), а is_callable() вернет true (хотя я ожидал бы увидеть false). Помогите пожалуйста.


// v::d это обертка вардампа

$var = create_function('','return false;'); // лямбда функция
v::d(is_callable($var)); // true
v::d(is_string($var)); // true
v::d(is_object($var)); // false
v::d(function_exists($var)); // true

$var2 = 'count'; // по идее строка
v::d(is_callable($var2)); // true
v::d(is_string($var2)); // true
v::d(is_object($var2)); // false
v::d(function_exists($var2)); // true
  • Вопрос задан
  • 2830 просмотров
Подписаться 3 Оценить Комментировать
Ответ пользователя dmitryklerik К ответам на вопрос (8)
@dmitryklerik
Попробуйте function_exists

Для min, count работает, для echo неработает
Ответ написан