其實我是在下面網址看到
http://www.chazzuka.com/blog/?p=58
於是自己寫了段測試 , 發現超驚人的
<?php
$foo = "123";
$time = microtime(true);
for($i=0; $i<1000;$i++) {
if(isset($foo{5})) {
echo "5";
}
}
printf("%f \n" , microtime(true)-$time);
$time = microtime(true);
for($i=0; $i<1000;$i++) {
if(strlen($foo)>5) {
echo "5";
}
}
printf("%f \n" , microtime(true)-$time);
?>
輸出結果 , 效能竟相差20倍以上 , isset() 你真好用 , 以前都不知道你的好耶
0.000623 0.016440
我想這是因為isset本身在php中”不屬於函數”有關吧
沒記錯它是一種”純粹的指令”
@Rie
isset 從以前就知道可以用來判斷 isset($_POST[‘xxx’]) 很好用 , 比 array_key_exist($_POST ,’xxx’) 來的快
但我卻不知道也可以判斷字串長度 ….. 果然是很奇怪的語言
@pigo
我覺得這也很怪阿…
a.php
b.php
真是太詭異了…囧
a.php
return array(1,2,3);
b.php
print_r(require ‘a.php’);
if(isset($foo{5})) {} =>檢查 $foo[5] 是否有值 Bool
if(strlen($foo)>5) {} =>計數$foo字數後再檢查是否大於 5
效能當能有差