性能: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
         );

之后,我会用foreachecho全部。这里有一些检查 $keyis_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 {
     /.../
  }