代码之家  ›  专栏  ›  技术社区  ›  Shikiryu DhruvJoshi

如果函数调用中缺少参数,如何抑制错误?

php
  •  1
  • Shikiryu DhruvJoshi  · 技术社区  · 15 年前

    我做了一个这样的函数(不需要在这里编写整个函数):

    public function selectNode($from, $attributes = null, $childs = null)
    

    当然,如果我这样称呼它:

    $node->selectNode();
    

    论据 $from 我知道你可以抑制错误 @$node->selectNode(); 或者类似的事情多亏了 @ .

    我该怎么做 如果可能的话?

    public function selectNode($from = null, $attributes = null, $childs = null) 但这并不清楚(与其他选择不同,from不是一个选择)。

    5 回复  |  直到 15 年前
        1
  •  1
  •   Thariama    15 年前

    你可以用一个 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
    }
    
        2
  •  5
  •   Your Common Sense    15 年前

    为什么你会错过一个必需的参数?它不是文件或外部变量!只要尝试调用此脚本,就会出现此错误。这就像是解析错误。这里该怎么办?

    不管怎样,你做错了。

    不要在代码中添加故意错误。

    语言的错误报告机制用于处理 错误,不是故意的。
    所以,做吧 $from = null, ,是的。然后不管你想怎么处理这个空值。

        3
  •  4
  •   neopickaze    15 年前

    为它分配一个默认变量,使其是可选的,然后基于此进行检查。

    如果能查一下 伊塞特 在引用代码并在参数中默认为空之前,isset将返回 从空值。

        4
  •  2
  •   wimvds    15 年前

    我想你已经把显示错误设置为php.ini文件现在这些警告出现在你的屏幕上,你不想 他们又冒出来了?如果是这样的话,那就换你的php.ini文件:

    display_errors = Off
    log_errors = On
    error_log = /path/to/php-error.log
    

        5
  •  0
  •   animuson    14 年前

    你在找以下的(或它的一个变种)?

    <?php error_reporting(0); ?>
    
    推荐文章