PHP не выдает никаких уведомлений для неопределенной переменной, если переменная передается в empty() или isset()
<?php
function myFunction($yesNname) { }
empty($noName);
print_r($noName);
isset($noName);
myFunction($noName);
выход:
PHP Notice: Undefined variable: noName ... on line 6 // print_r
PHP Notice: Undefined variable: noName ... on line 9 // myFunction
Неопределенная переменная используется в empty() и isset (). Но PHP не выпустил уведомление об этом. Почему PHP показывает дискриминацию какой-либо функции? Как я могу написать такой тип функции?
3 ответа
Ни isset()
ни empty()
являются функциями. Как объясняется в руководстве:
это языковая конструкция, а не функция
Чтобы получить такое поведение, вам нужно настроить исходный код PHP, написанный на C.
Вполне возможно, что вы также можете получить такое поведение с расширением PHP, но вам также нужно написать его на C и установить его на свой сервер.
Обновить:
Вы имели в виду как:
if(!empty($noName)) {
// print_r
// function($noName);
}
Там нет никакого способа сделать это на стороне функции. Если вы просто не хотите показывать ошибки, вы можете либо проверить переменную перед вызовом функции, либо использовать оператор контроля ошибок "@".