我想知道哪些摘录应该占用更少的资源,当我们想看看“word”是否是数组的元素时:
摘录1 - 检查变量:
<?php
function checkWord($word, $elements) {
$array = array($word => true);
foreach ($elements as $element) {
if (isset($array[$element])) return true;
}
return false;
}
$elements = array('this', 'is', 'an', 'array', 'with', 'a', 'word');
checkWord('word', $elements);
?>
摘录2 - 比较字符串:
<?php
function checkWord($word, $elements) {
foreach ($elements as $element) {
if ($element == $word) return true;
}
return false;
}
$elements = array('this', 'is', 'an', 'array', 'with', 'a', 'word');
checkWord('word', $elements);
?>
我知道我们可以简单地使用in_array()
,但这不是重点。
那么,总之,使用isset进行变量检查比比较字符串更好吗?
编辑请理解我知道有更好的方法可以做到这一点。我只是询问上述哪种方式更好,占用资源更少。
答案 0 :(得分:2)
我使用51000+独特单词列表进行了基准测试,以满足您(以及我的,诚实)的好奇心。虽然不是很多,但使用isset()确实比比较字符串更快,第一种方法的平均值 0.0144901275634765625 秒,第二种方法的平均值 0.0164241790771484375 秒, 5次尝试。
希望这有帮助。