以下内容可能会为许多新开发者节省时间:注意不要将 FALSE 和 TRUE 解释为整数。
例如,一个用于删除数组元素的小函数,如果你没有完全了解发生了什么,可能会产生意想不到的结果
<?php
function remove_element($element, $array)
{
$index = array_search($element, $array);
unset ($array[$index]);
return $array;
}
$array = ['A', 'B', 'C'];
$array = remove_element('A', $array);
$array = ['A', 'B', 'C'];
$array = remove_element('X', $array);
?>
问题在于,虽然 array_search 在找不到特定元素时返回布尔值 false,但在用作数组索引时,它被解释为零。
所以你必须显式地检查 FALSE,否则你可能会丢失一些元素
<?php
function remove_element($element, $array)
{
$index = array_search($element, $array);
if ($index !== FALSE)
{
unset ($array[$index]);
}
return $array;
}