事实证明,@AlloVince的结果是最快的,在各种情况下:
T1: file_existe
T2: file_get_content
T3: @
chenz & @
Js 的方式
T4: @
AlloVince 的方式
Array
(
[Looped] => 7500
[Test1] => Array
(
[LastStartTime] => 1367219062.6647
[LastEndTime] => 1367219062.6648
[LastUsedTime] => 0.0001220703125
[AvaTime] => 0.00010805782386953
[Total] => 0.7269139289856
)
[Test2] => Array
(
[LastStartTime] => 1367219062.6648
[LastEndTime] => 1367219062.665
[LastUsedTime] => 0.00015997886657715
[AvaTime] => 0.00016230891026936
[Total] => 3.4872250556946
)
[Test3] => Array
(
[LastStartTime] => 1367219062.665
[LastEndTime] => 1367219062.6654
[LastUsedTime] => 0.0004270076751709
[AvaTime] => 0.00042835394322712
[Total] => 2.5338525772095
)
[Test4] => Array
(
[LastStartTime] => 1367219062.6654
[LastEndTime] => 1367219062.666
[LastUsedTime] => 0.00052094459533691
[AvaTime] => 0.00033806347033363
[Total] => 1.6245625019073
)
)
这是代码:
http://pastebin.com/gu7MSFRz但是除了Test3,和用来参考的Test1其他方式都至少可能会有E_WARNING抛出的风险。
另外@
chenz,我没有质疑各位的历史。当然也不在乎各位是否写过zval之类,一个工具而已。就事论事,你看清我的观点,我认为你应当error_reporting(0),以上所有各位我的观点都是如此,但是同时必须使用set_error_handler()。这是我的核心观点。也是我在开发时一直的观点。
https://code.google.com/p/faculaframework/source/browse/trunk/include/class.oops.php#86我同时也没有说“就应该让错误看不见”。你也要注意这一点,不要没事挑刺。另外,我搬出新学,是因为我一开始也用的E_ALL,我代码的r2版本里你能看到一堆file_exist和isset,但是后来,这些错误扰乱了我正常的HTTP HEADER,于是我必须做出调整,保持程序在任何情况下都是稳定的。于是我固执的认为error_reporting这种事情就应该 = 0,然后你自己负责的好好处理,不要直接抛出。
我想我的处理方式不在各位之下吧?
当然,为了证明上述,于是我搬了一些论据,比如isset的开销。当然,@AlloVince的方法确实是最快的,条件允许我会将一些地方的file_exist改成fopen来追求速度。
但是到此为止,我只看到了我的观点,没看到各位什么观点,我想知道你们开了E_ALL,然后怎么处理?就让错误飘在页面上?