以下代码非常重复,我可以避免重复用户数据函数调用吗?
if($this->session->userdata('lang'))
$lang = $this->session->userdata('lang');
答案 0 :(得分:5)
在PHP> = 5.3中你可以这样做:
$lang = $this->session->userdata('lang') ?: '';
答案 1 :(得分:2)
将结果存储在临时变量中:
if($temp = $this->session->userdata('lang'))
$lang = $temp;
答案 2 :(得分:2)
根据the source,如果找不到该值,则该方法返回NULL,因此您的if语句(当前表示)是不必要的。
答案 3 :(得分:0)
你可以使用
$lang = $this->session->userdata('lang')?$this->session->userdata('lang'):"";
但正如@bwoebi指出的那样,这并不能避免在函数调用上加倍。
您可以创建一个功能来为您完成脏工作。
function getValueOrDefault($value, $default = null){
return $value?$value:$default;
}
$lang = getValueOrDefault($this->session->userdata('lang'), "en");
或根据你的情况,取决于$ this-> session-> userdata()的虚假回报是什么
$lang = $this->session->userdata('lang');
可能是等效的。