每次调用$ arr ['KEY']时自动应用isset()

时间:2014-06-09 17:07:37

标签: php arrays isset

不确定这是否可行。例如:

$color = isset($product['color']) ? $product['color'] : '';
$size  = isset($product['size']) ? $product['size'] : '';
$qty   = isset($product['qty']) ? $product['qty'] : '';
***
***

我几乎无处不在地使用isset()来获取数组中的值,我不确定它是否已设置。我正在使用自己的自定义框架,所以我想知道是否可以添加某种方式来自动检查它是否设置。

所以我想要这样的事情:

//if its not set, do not throw warning message just return blank
$color = $product['color'];
$size  = $product['size'];
$qty   = $product['qty'];

基本上类似于PHP魔术函数__isset对类的作用,但是对于任何 的数组我都需要它。

我在每个控制器中使用的BaseController添加了一个函数,但它仍然是一个额外的函数调用:

$color = $this->isSet($product, 'color', '');
$size  = $this->isSet($product, 'size', '');
$qty   = $this->isSet($product, 'qty', '');

和功能:

public function isSet(array $data, $key, $return) {
   return isset($data[$key]) ? $data[$key] : $return;
}

我的问题是,有没有更好的方法可以在没有功能的情况下这样做?

1 个答案:

答案 0 :(得分:-3)

$color = @$product['color'];
$size  = @$product['size'];
$qty   = @$product['qty'];