2012-12-14 13 views
2
<?php 

function myFunction($yesNname) { } 

empty($noName); 
print_r($noName); 
isset($noName); 

myFunction($noName); 

输出:PHP不发出任何通知为未定义的变量,如果该变量被传递给空的()或isset()函数

PHP Notice: Undefined variable: noName ... on line 6 // print_r 
PHP Notice: Undefined variable: noName ... on line 9 // myFunction 

未定义变量在空()isset使用()。但是PHP没有发布关于它的通知。为什么PHP显示歧视某些功能?我如何编写这种类型的函数?

+0

有一个函数来测试一个变量是否存在,并使它在不存在时触发错误消息的要点是什么? –

+0

@ÁlvaroG.Vicario我可以理解。我想知道如何编写这种类型的函数。 –

+0

你为什么要这样?你能把这种情况勾画出来吗? – giorgio

回答

3

无论isset()也不empty()的功能。正如手册说明:

这是一个语言结构而非函数

要获得这种行为你需要调整用C编写PHP源代码

这是可能的你也可以用PHP扩展来获得这种行为,但是你也需要用C编写它并将它安装到你的服务器中。

更新:

+0

你可以添加参考吗? –

3

您是不是要找这样的:

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

为什么我应该把调用函数的条件?你是否在我的代码中看到isset()或empty()这样的条件? –

+0

请注意isset并不需要与empty一起使用(如果var不存在,empty已经返回false) – giorgio

+0

放轻松@habeebperwad,他试图帮助你...并且实际上是对的 – giorgio

2

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