PHP - 检查变量或比较字符串?

时间:2010-08-30 23:56:29

标签: php string variables compare

我想知道哪些摘录应该占用更少的资源,当我们想看看“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进行变量检查比比较字符串更好吗?

编辑请理解我知道有更好的方法可以做到这一点。我只是询问上述哪种方式更好,占用资源更少。

1 个答案:

答案 0 :(得分:2)

我使用51000+独特单词列表进行了基准测试,以满足您(以及我的,诚实)的好奇心。虽然不是很多,但使用isset()确实比比较字符串更快,第一种方法的平均值 0.0144901275634765625 秒,第二种方法的平均值 0.0164241790771484375 秒, 5次尝试。

希望这有帮助。