Add variable to an array only if it has a value in PHP? -


i passing variable index view in yii2 framework. have following code:

return $this->render('index', array(     'userresult' => $userresult,     'topresult' => $topresult,     'result' => $result )); 

i need pass variable $userresult if user logged in since if user not logged in, $userresult variable not exist. tried can not if statement run:

return $this->render('index', array(     if (!\yii::$app->user->isguest) { echo "'userresult' => $userresult"; },     'topresult' => $topresult,     'result' => $result )); 

how can achieved?

one of ways it:

// initial array $params = [     'topresult' => $topresult,     'result' => $result, ];  // conditionally add other elements array if (!\yii::$app->user->isguest) {     $params['userresult'] = $userresult }  return $this->render('index', $params); 

mixing echo array wrong. should learn more arrays in plain php.

also can forget array() syntax, use shorter variation [] since yii2 requires php >= 5.4.

and think it's better pass null instead:

return $this->render('index', [     'userresult' => $userresult ?: null,     'topresult' => $topresult,     'result' => $result ]); 

then check if variable null or not, or if ($userresult) { ... } in view. think it's better using isset in view. way params number constant.


Comments