PHP简写IF,在第一部分中有两个变量


PHP shorthand IF with two variables in the first part

如何编写这个IF条件(目前我有错误,但不知道在哪里)?

$gll_name = ($gll_id != NULL ? $w = $this->gallery_model->gallery_get_one_user($gll_id);  $w->name : " ");

您不需要两个变量,而且"简写if"也不允许使用冒号。这应该有效:

$gll_name = (
    $gll_id != NULL
    ? $this->gallery_model->gallery_get_one_user($gll_id)->name
    : " "); 

(注意,为了可见性,我添加了缩进,在这种情况下,它们在PHP中并不重要)

还要考虑严格条件(使用!==而不是!=),因为PHP会将所有伪ish值(nullfalse0等)视为等于(==)到NULL,但只有NULL严格等于(===)到NULL。有关演示,请参阅:http://ideone.com/8ENsX

您试图做的事情没有意义。你必须从中的分配运算符开始

 $gll_name =

然后给你的情况打个问号,例如

 (1 == 1 && 2 == 2) ? 

如果值为真:如果值为假,例如

'correct' : 'not good' ;

相等

  $gll_name =  (1 == 1 && 2 == 2) ?  'correct' : 'not good' ;