0

我正在一个程序员团队中制作一个程序,并且已经决定对于一个特定的系统,我们将使用一个数组。在大多数使用中,数组中的所有索引都将被正确设置,未定义的索引可能会发生。使用 isset() 或 array_key_exists() 会使代码太慢(因为我们需要大量的 if 和 if 很慢)而且太“脏”(太多的代码和重复的代码),所以两者都不是一个选项。我已经发现了 set_error_handler() 函数,但我也不知道它是否是最佳选择。

主要目标:当该特定数组导致未定义的索引时,它必须被捕获、解决(将情况写入日志)并且脚本必须继续执行,就像什么都没发生一样。最好的方法是什么?

注意:如果发生任何其他错误或警告,我希望 PHP 像以前那样对待它,我只希望将这些东西制作到具有该名称的特定数组中。

我希望我足够清楚

4

2 回答 2

1

你应该使用Exception's

try{
    if(!isset($values[23])) throw new Exception("index not defined");
    // do dangerous stuff here
}catch(Exception $ex){
    //handle error
}

但是,理想的解决方案是确保从一开始就不会发生这种情况。

于 2011-09-27T17:06:45.783 回答
0

考虑将您的代码放入 try-catch 语句中。在 catch 中,您可以记录错误。

http://php.net/manual/en/language.exceptions.php

于 2011-09-27T17:11:34.463 回答