对于很多新手开发者来说,以下建议可以节省时间:注意不要将 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;
}