2
<?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 对某些函数有歧视?我怎样才能编写这种类型的函数?

4

3 回答 3

3

你的意思是像:

if(!empty($noName)) {
 // print_r
 // function($noName);
}
于 2012-12-14T10:57:08.383 回答
3

函数也不isset()empty()。正如手册所解释的:

这是一个语言结构,而不是一个函数

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

您也可以使用 PHP 扩展来获得这种行为,但您还需要用 C 语言编写它并将其安装在您的服务器中。

更新:

于 2012-12-14T10:58:52.383 回答
2

在功能方面没有办法做到这一点。如果您只是不想显示错误,您可以在调用函数之前先检查变量或使用错误控制运算符 "@"

于 2012-12-14T11:30:23.037 回答