性能:foreach 循环中的 is_numeric() 和 is_string()
Performance: is_numeric() and is_string() in a foreach loop
我在一个数组ex中有一堆数组
$array =
array(
array(/../),
array(/../),
array(/../),
//upto 100-200 arrays
);
之后,我会用foreach
到echo
全部。这里有一些检查 $key
是 is_numeric()
还是 is_string()
,例如:
array(
'the_key_here_is_numeric',
'string' => 'the key is string'
);
所以我有一个 foreach
这样的:
foreach($array as $arr => $arrays) {
foreach($arrays as $key => $value) {
if(is_numeric($key)) {
/.../
}
if(is_string($key)) {
/../
}
}
echo /../;
}
当我使用KCacheGrind
测试时,显然is_string()
和is_numeric()
会被多次使用,我的问题是,这会影响性能吗?如果是这样,有没有更好的方法来做到这一点?
就用else吧。然后条件将只检查一次
没有
if(is_numeric($key)) {
/.../
}
if(is_string($key)) {
/../
}
但是
if(is_string($key)) {
/../
} else {
/.../
}
我在一个数组ex中有一堆数组
$array =
array(
array(/../),
array(/../),
array(/../),
//upto 100-200 arrays
);
之后,我会用foreach
到echo
全部。这里有一些检查 $key
是 is_numeric()
还是 is_string()
,例如:
array(
'the_key_here_is_numeric',
'string' => 'the key is string'
);
所以我有一个 foreach
这样的:
foreach($array as $arr => $arrays) {
foreach($arrays as $key => $value) {
if(is_numeric($key)) {
/.../
}
if(is_string($key)) {
/../
}
}
echo /../;
}
当我使用KCacheGrind
测试时,显然is_string()
和is_numeric()
会被多次使用,我的问题是,这会影响性能吗?如果是这样,有没有更好的方法来做到这一点?
就用else吧。然后条件将只检查一次
没有
if(is_numeric($key)) {
/.../
}
if(is_string($key)) {
/../
}
但是
if(is_string($key)) {
/../
} else {
/.../
}