Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP始终运行函数_Php_Json - Fatal编程技术网

PHP始终运行函数

PHP始终运行函数,php,json,Php,Json,我正在尝试以JSON格式返回一些错误。因此,我制作了一个类级变量: public $errors = Array(); 因此,在脚本下面,不同的函数可能会返回一个错误,并将其错误添加到$errors数组中。但是,我必须使用返回;在某些地方,在发生错误后停止脚本 那么,当我这样做的时候,我怎么还能运行上一个返回所有收集到的错误的错误函数呢?我怎样才能避免不得不停止脚本的问题,但仍然希望返回错误,因为我为什么需要停止脚本 真正的裸骨骨架: $errors = array(); function

我正在尝试以JSON格式返回一些错误。因此,我制作了一个类级变量:

public $errors = Array();
因此,在脚本下面,不同的函数可能会返回一个错误,并将其错误添加到$errors数组中。但是,我必须使用返回;在某些地方,在发生错误后停止脚本


那么,当我这样做的时候,我怎么还能运行上一个返回所有收集到的错误的错误函数呢?我怎样才能避免不得不停止脚本的问题,但仍然希望返回错误,因为我为什么需要停止脚本

真正的裸骨骨架:

$errors = array();

function add_error($message, $die = false) {
  global $errors;
  $errors[] = $message;
  if ($die) {
    die(implode("\n", $errors));
  }
}

真正的裸骨骨架:

$errors = array();

function add_error($message, $die = false) {
  global $errors;
  $errors[] = $message;
  if ($die) {
    die(implode("\n", $errors));
  }
}
你可以。

你可以

  • 将错误添加到当前的
    $\u会话中
  • 将最新错误添加到任何类型的
    缓存
    XML
    或某些存储中
  • 如果代码“停止”:

    //代码发生错误

    模具(打印($errors))

  • 将错误添加到当前的
    $\u会话中
  • 将最新错误添加到任何类型的
    缓存
    XML
    或某些存储中
  • 如果代码“停止”:

    //代码发生错误

    模具(打印($errors))


    如果您使用的是PHP5+,那么您的类可以有一个析构函数方法:

    public function __destruct() {
        die(var_dump($this->errors));
    }
    

    如果您使用的是PHP5+,那么您的类可以有一个析构函数方法:

    public function __destruct() {
        die(var_dump($this->errors));
    }
    

    您可以使用一个涉及do{}的技巧

    do {
        if(something) {
            // add error
        }
        if(something_else) {
            // add error
            break;
        }
        if(something) {
            // add error
        }
    }while(0);
    
    // check/print errors
    
    请注意,break,您可以随时使用它来中断do范围,然后您就有了最终的错误返回逻辑。
    或者,您可以在函数中执行中的操作{},并使用返回而不是中断,这会更好。或者是的,甚至更好,一个带有析构函数的类。

    您可以使用一个涉及do{}的技巧

    do {
        if(something) {
            // add error
        }
        if(something_else) {
            // add error
            break;
        }
        if(something) {
            // add error
        }
    }while(0);
    
    // check/print errors
    
    请注意,break,您可以随时使用它来中断do范围,然后您就有了最终的错误返回逻辑。
    或者,您可以在函数中执行中的操作{},并使用返回而不是中断,这会更好。或者是的,甚至更好,一个带有析构函数的类。

    没有假设脚本“已完成”?是的,当错误条件是致命的时,您需要调用
    exit()
    。没有假设脚本是“已完成”?是的,当错误条件是致命的时,您需要调用
    exit()