在 php pdo 中缩短删除数组元素的代码
Shorten code for removing array element with conditional in php pdo
有没有办法缩短这段代码?它看起来很笨重。我用三元运算符尝试了几个 shorthand 的想法,但没有任何效果。所以这就是我想出的。如有任何想法,我们将不胜感激。
$query = $db->prepare($sql);
$array = array(':page_parent' => $parent_id, ':page_active' => $active);
if(is_null($active)):
unset($array[':page_active']);
endif;
$query->execute($array);
$query = $db->prepare($sql);
$array = array(':page_parent' => $parent_id, ':page_active' => $active);
//array_filter will remove null and false array element
$array = array_filter($array);
$query->execute($array);
为什么在添加到数组之前不能检查?
$query = $db->prepare($sql);
$array = array(':page_parent' => $parent_id);
if( ! is_null($active))
{
$array[':page_active'] = $active;
}
$query->execute($array);
虽然行数相同,但效率更高,因为它只处理有内容的活动,而不是添加它,然后在没有内容的情况下删除它。
有没有办法缩短这段代码?它看起来很笨重。我用三元运算符尝试了几个 shorthand 的想法,但没有任何效果。所以这就是我想出的。如有任何想法,我们将不胜感激。
$query = $db->prepare($sql);
$array = array(':page_parent' => $parent_id, ':page_active' => $active);
if(is_null($active)):
unset($array[':page_active']);
endif;
$query->execute($array);
$query = $db->prepare($sql);
$array = array(':page_parent' => $parent_id, ':page_active' => $active);
//array_filter will remove null and false array element
$array = array_filter($array);
$query->execute($array);
为什么在添加到数组之前不能检查?
$query = $db->prepare($sql);
$array = array(':page_parent' => $parent_id);
if( ! is_null($active))
{
$array[':page_active'] = $active;
}
$query->execute($array);
虽然行数相同,但效率更高,因为它只处理有内容的活动,而不是添加它,然后在没有内容的情况下删除它。