如果数组值为空或如何设置为空,如何写正确?

时间:2015-01-05 09:15:52

标签: php laravel laravel-4

让我们采用像

这样的简单视图元素
 {{ Form::select('license',$licenses, $selectedLicenses->value, array('class'=>'form-control')) }}

依赖控制器返回

return View::make('user.cv.4', array('licenses'=> $licences,'selectedLicenses'   => $selectedLiceses,)

问题是,如果用户第一次创建cv $licensesNULL并且编译器抛出类似$selectedLicenses->value Trying to get property of non-object的错误。

所以问题是如何做到这一点$selectedLicenses->value如果父变量$selectedLiceses也将为NULL?没有任何if语句可以做到这一点吗?我想保持我的代码尽可能简单。

我正在使用php和laravel框架。我的模型看起来像

class License extends Eloquent{
    protected $table = 'license';
    protected $fillable = array('value','licenseStart','licenseEnd');
    public $timestamps = false;
}

2 个答案:

答案 0 :(得分:1)

我不认为你可以在没有if的情况下做到。

你可以用速记内联:

{{ Form::select('license',$licenses, ($selectedLicenses != null ? $selectedLicenses->value : null), array('class'=>'form-control')) }}

或者在注入之前将值设置为null。

if($selectedLicenses == null){
    $selectedLicenses = (object) array('value' => null);
}
// return View::make etc...

答案 1 :(得分:0)

在这种情况下使用三元运算符,如下所示

$value = ($selectedLicenses) ? $selectedLicenses->value : '';

看,如果有效。