<?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 对某些函数显示歧视? 如何编写此类函数?
isset()
和 empty()
都不是函数。正如手册所解释的那样:
这是一个语言结构,而不是一个函数
要获得这种行为,您需要调整用 C 编写的 PHP 源代码。
你也可以通过PHP扩展获得这种行为,但你还需要用C编写它并将其安装在你的服务器中。
更新:
- isset() 的手册页
- 空()的手册页
- Zend引擎指南
你的意思是:
if(!empty($noName)) {
// print_r
// function($noName);
}
在函数端没有办法做到这一点。如果你只是不想显示错误,你可以在调用函数之前先检查变量,也可以使用错误控制运算符"@"。