如果变量传递给empty()或isset(),PHP不会发出任何未定义变量的通知

时间:2012-12-14 10:50:38

标签: php notice

<?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 个答案:

答案 0 :(得分:3)

你的意思是:

if(!empty($noName)) {
 // print_r
 // function($noName);
}

答案 1 :(得分:3)

isset()empty()都不是函数。正如手册解释:

  

这是一种语言结构,而不是一种功能

要获得此行为,您需要调整用C编写的PHP源代码。

您可能也可以通过PHP扩展获得此行为,但您还需要在C中编写它并将其安装在您的服务器中。

<强>更新

答案 2 :(得分:2)

在功能方面无法做到这一点。如果您只是不想显示错误,可以在调用函数之前先检查变量,或使用error control operator "@"