过度使用条件陈述?

时间:2012-09-14 10:58:37

标签: php codeigniter conditional

我遇到了一个小问题,我只是在寻找有关最佳实践的建议。

我有一个脚本从外部网页获取一些数据。有时这些数据不完整。

例如我可能有

$array=array('name'=>'Bob Smith','address'=>array('0'=>'My address'),'phone'=>'000000');

然后我将此数据设置为另一个数组以插入到我的数据库中。 E.G。

$data=array('name'=>$array['name'],'address'=>$array['address']['0'],'phone'=>$array['phone']);

但是,如果没有找到地址,则不设置$ array ['address'] ['0'],因此使用它创建第二个数组会在CodeIgniter中创建错误。虽然在正常的程序编码中没有显示错误,但我认为CI有这个错误表明解决它是一种最佳实践。

所以..我认为解决这个问题的最佳方法是使用条件并检查$ array ['address'] ['0']是否在添加到$ data数组之前设置。那是对的吗? 如果不是,则将null插入数据库。

嵌套问题是当我从数据库中获取数据以显示它时。 我想爆炸地址的行并输出它们,但如果没有再次设置,则codeigniter会抛出错误。同样,通过条件声明可以轻松避免。

我的问题主要在于处理,插入和输出数据,其中有许多变量可能会或可能不会被设置,我需要看似有负载和条件语句的负载。

我认为实际上这不是问题,但我喜欢我的代码尽可能短而简洁。我错过了什么吗?

干杯

1 个答案:

答案 0 :(得分:6)

您知道可以退回的所有可能钥匙吗?在那种情况下

$allowed_keys = array('name', 'address');
$new_data = array();
foreach ($allowed_keys as $key) {
    $new_data[$key] = isset($data[$key]) ? $data[$key] : null;
}

您还可以在foreach-loop

中为某些键添加格式
if ($key == 'address') {
    $new_data[$key] = isset($data[$key]) ? implode(', ', $data[$key]) : null;
    continue;
}