2015-07-29 1 views
0

У меня есть следующий, очень странно, код:Как строка может быть как вызываемой, так и строкой?

$var = 'key'; 

var_dump(is_callable($var)) // true; 
var_dump(is_string($var)) // true; 

Как одна переменная может быть как вызываемая и строку? И когда я установил переменную $var в другую строку. is_callable() вернет false (что я считаю нормальным поведением).

Что здесь происходит? Почему это?

Заранее спасибо.

+0

кажется вызываемым мне: http://php.net/manual/en/function.key.php – AbraCadaver

+0

'key' является вы можете использовать его как '$ var ($ myArray)' – cmorrissey

ответ

4

Поскольку key является основной функцией PHP, таким образом, вызываемая: http://be2.php.net/manual/en/function.key.php

$var = 'keyy'; //Notice the extra y 

var_dump(is_callable($var)); // false; 
var_dump(is_string($var)); // true; 
+0

Спасибо за быстрый ответ. Это и есть причина такого поведения. Исправлено с помощью '$ key instanceof Closure'. – frietkot

Смежные вопросы