如果var使用var,缩短php

时间:2013-07-02 20:41:55

标签: php codeigniter

以下代码非常重复,我可以避免重复用户数据函数调用吗?

if($this->session->userdata('lang'))
        $lang = $this->session->userdata('lang');

4 个答案:

答案 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');

可能是等效的。