Языковые конструкции жестко закодированы на языке PHP. Они не играют по обычным правилам.
Например, когда вы пытаетесь получить доступ к переменной, которая не существует, вы получите сообщение об ошибке. Для того, чтобы проверить, существует ли переменная, прежде чем получить доступ к нему, необходимо проконсультироваться isset
или empty
:
if (isset($foo))
Если isset
была нормальная функция, вы получите предупреждение там, как хорошо, так как вы обращаетесь к $foo
передайте его в функцию isset
. Так как isset
- это языковая конструкция, это работает без предупреждения. Вот почему документация дает четкое различие между нормальными функциями и языковыми конструкциями.
Вы можете повторно реализовать 'empty' с' isset': 'function empty (& $ var) {return! Isset ($ var) || ! $ Вар; } ' – Gumbo
@Gumbo: конечно, но вам все еще нужна конструкция isset() –