我刚刚进行了快速基准测试:
Function time to run 1 million iterations--------------------------------------------(int) "123": 0.55029intval("123"): 1.0115 (183%)(int) "0": 0.42461intval("0"): 0.95683 (225%)(int) int: 0.1502intval(int): 0.65716 (438%)(int) array("a", "b"): 0.91264intval(array("a", "b")): 1.47681 (162%)(int) "hello": 0.42208intval("hello"): 0.93678 (222%)平均而言,调用intval()的速度要慢两倍半,并且如果您的输入已经是整数,则相差最大。
我想知道 为什么 。
更新:我再次使用强制性进行测试
(0 + $var)
| INPUT ($x) | (int) $x |intval($x) | 0 + $x ||-----------------|------------|-----------|-----------|| "123"| 0.51541 | 0.96924 | 0.33828 || "0" | 0.42723 | 0.97418 | 0.31353 || 123 | 0.15011 | 0.61690 | 0.15452 || array("a", "b") | 0.8893 | 1.45109 | err! || "hello" | 0.42618 | 0.88803 | 0.1691 ||-----------------|------------|-----------|-----------|附录: 我刚刚遇到了一种意想不到的行为,选择以下一种方法时应注意:
$x = "11";(int) $x; // int(11)intval($x); // int(11)$x + 0; // int(11)$x = "0x11";(int) $x; // int(0)intval($x); // int(0)$x + 0; // int(17) !$x = "011";(int) $x; // int(11)intval($x); // int(11)$x + 0; // int(11) (not 9)
使用PHP 5.3.1测试



