который быстрее / лучше strcasecmp () или равен оператору?

Мне нужно сравнить две строки для нечувствительного к регистру равенства, которое быстрее strcasecmp () или равно оператору

$str1='Hello'; $str2='hello'; //first approach if($str1 != strotolower($str2)) //do some stuff here //second approach if(strcasecmp($str1,$str2) !=0) //do some stuff here) 

какой подход лучше / быстрее?

Related of "который быстрее / лучше strcasecmp () или равен оператору?"

Оба подхода – o (n) в скорости, однако usign strtolower выделяет новую строку для хранения результата, что, в свою очередь, увеличивает давление памяти и снижает производительность

Вы можете попробовать следующее:

  //********************************* $start1 = microtime(true); for ($i = 0; $i < 10000000; ++$i) { if (strcasecmp('STRING1', 'string1') == 0) {} } $end1 = microtime(true); echo 'Time1: ' . ($end1 - $start1) . '<br/>'; //********************************* $start2 = microtime(true); for ($i = 0; $i < 10000000; ++$i) { if (strtolower('STRING1') == strtolower('string1')) {} } $end2 = microtime(true); echo 'Time2: ' . ($end2 - $start2) . '<br/>'; //********************************* $start3 = microtime(true); for ($i = 0; $i < 10000000; ++$i) { if (strtolower('STRING1') == 'string1') {} } $end3 = microtime(true); echo 'Time3: ' . ($end3 - $start3) . '<br/>'; //********************************* 

Результат:

Время1: 2.8758139610291

Время2: 4.6863219738007

Время3: 2.5191688537598