我很确定这个问题的答案是否定的,但是如果有一些PHP大师的话
是否有可能以一种方式编写一个函数,其中可以传入无效参数或不存在的变量,并且php不会在不使用 '@'
很像空和isset.您可以传入刚刚编写的变量,也不会出错.
ex: empty($someBogusVar); // no error myHappyFunction($someBogusVar); // Php warning / notice
Kornel.. 10
通过引用传递变量时,您不会收到任何错误(PHP将以静默方式创建新变量):
function myHappyFunction(&$var) { }
但我建议不要滥用它来隐藏编程错误.
通过引用传递变量时,您不会收到任何错误(PHP将以静默方式创建新变量):
function myHappyFunction(&$var) { }
但我建议不要滥用它来隐藏编程错误.
总结一下,正确答案是否定的,你不应该(见下面的警告).
许多人已经在这个线程中提到过变通方法,比如在条件中使用引用变量或isset()或empty()以及在PHP配置中抑制通知.除了明显的解决方法,使用@,你不需要.
总结一个与Gerry有趣的评论讨论:如果检查函数内部变量的值并正确处理undefined或null情况,则通过引用传递变量确实有效.只是不要使用引用传递作为关闭PHP的方式(这是我原来不应该指向的地方).