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

如果变量传递到empty()或isset(),PHP不会对未定义的变量发出任何通知,php,notice,Php,Notice,未定义的变量用于empty()和isset()。但PHP并没有就此发出通知。为什么PHP对某些函数有区别?我怎样才能写这样的函数呢?你的意思是: PHP Notice: Undefined variable: noName ... on line 6 // print_r PHP Notice: Undefined variable: noName ... on line 9 // myFunction isset()和empty()都不是函数。如手册所述: 这是一种语言结构,而不是函数

未定义的变量用于empty()和isset()。但PHP并没有就此发出通知。为什么PHP对某些函数有区别?我怎样才能写这样的函数呢?

你的意思是:

PHP Notice:  Undefined variable: noName ... on line 6 // print_r
PHP Notice:  Undefined variable: noName ... on line 9 // myFunction
isset()
empty()
都不是函数。如手册所述:

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

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

您也可以通过PHP扩展获得这种行为,但是您还需要用C编写它并将其安装到服务器中

更新:


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

      使用函数测试变量是否存在,并在不存在时使其触发错误消息,这有什么意义?@lvaroG.Vicario我可以理解。我想知道我怎样才能写出这样的函数。你为什么要这样做?你能描述一下情况吗?@giorgio我想PHP中会有一些技术来做到这一点。为什么我要设置调用函数的条件?您在我的代码中看到过isset()或empty()的任何情况吗?请注意,isset不需要与empty结合使用(如果var不存在,empty将返回false)。请放心@Habeeberwad,他正试图帮助您。。。这是正确的actually@giorgio他试图解决PHP通知!他没有试图回答我的问题“我怎样才能写出这样的函数?”。不管怎样,谢谢你考虑我的问题。有人已经提到了:你不能。你为什么要这么做呢?这些函数已经存在,并且可以启动。你为什么要复制一些你可以直接使用的东西?
      PHP Notice:  Undefined variable: noName ... on line 6 // print_r
      PHP Notice:  Undefined variable: noName ... on line 9 // myFunction
      
      if(!empty($noName)) {
       // print_r
       // function($noName);
      }