我做了这样的函数(不需要在这里编写整个函数):
public function selectNode($from, $attributes = null, $childs = null)
当然,如果我这样称呼它:
$node->selectNode();
参数$from
未初始化,然后出现警告错误。
我知道你可以通过@$node->selectNode();
来抑制错误@
或类似的错误。
但是,我想自己处理它。 如果可能的话,我该怎么做??
我找到的唯一方法就是像public function selectNode($from = null, $attributes = null, $childs = null)
一样初始化它,但这并没有说清楚($ from不像其他选项那样)。
(当然,这个函数,这里只是一个例子。它可以扩展到其他函数)
答案 0 :(得分:5)
为什么你会错过所需的参数?它不是文件或外部变量!只需尝试调用此脚本,您就会收到此错误。这就像解析错误。这里要处理什么? 这是开发阶段的错误。它只需要纠正,而不是处理。
无论如何,你做错了。
永远不要在代码中添加故意错误。
语言错误报告机制用于处理意外错误,而非故意错误
如果您预计会出现错误 - 请自行处理。不要让PHP引发错误
所以,把它$from = null,
,是的。然后随意处理这个null。
答案 1 :(得分:4)
当然如果不需要$ from参数,应为其分配一个默认变量,因此它是可选的,然后根据此进行检查。
在引用它之前检查代码中的 isset 是否非常优雅,并且在参数中提供null作为默认值,isset将返回 false 来自空值。
答案 2 :(得分:2)
我猜你在php.ini中将display_errors设置为on,现在这些警告会弹出你的屏幕,你不想看到它们突然冒出来了?如果是这种情况,那么改变你的php.ini:
display_errors = Off
log_errors = On
error_log = /path/to/php-error.log
错误将记录到您在error_log中指定的文件中,并且不再显示在屏幕上。
答案 3 :(得分:1)
您可以使用try-catch block自行处理错误。
try {
$node->selectNode();
}
catch (Exception $e){
echo $e; // do whatever you like here with error info $e, if you leave the parenthesis empty here nothing is done and the error message is suppressed
}
答案 4 :(得分:0)
您是否正在寻找以下(或其中一种变体)?
<?php error_reporting(0); ?>