я делаю это, чтобы проверить и получить атрибут сеанса в моем коде:Symfony2 лучший способ проверить/получить атрибут сеанса
if ($session->has("myVar")) {
$myVar = session->get("myVar");
/* do something */
}
Но я прочитал код сессии и:
/**
* Returns an attribute.
*
* @param string $name The attribute name
* @param mixed $default The default value if not found.
*
* @return mixed
*
* @api
*/
public function get($name, $default = null);
Итак, если атрибут сеанса не найден, получите возврат «null».
if ($myVar = $session->get("myVar")) {
/* do something */
}
Или лучше с ложным, если у вас есть "MYVAR", но пустой, вы не можете полагаться на "нулевой":
if ($myVar = $session->get("myVar", false)) {
/* do something */
}
в соответствии с: Null vs. False vs. 0 in PHP
Я думаю, что третья является лучшим, один вызов $ session-> get, а не имеет и попадает в мой фактический код.
Я читал об альтернативном компарадионе с тройным оператором, http://fabien.potencier.org/article/48/the-php-ternary-operator-fast-or-not, я не использую его, главным образом потому, что я не знаком с ним, но если он не быстрее, мне это не нужно.
Можете ли вы подтвердить, что третий является лучшим, а если нет, то почему и как делать лучше?
Что именно вы хотите проверить? Это существует? Это существует, но не имеет значения? Что он существует, но ценность не та, которую вы хотите? – Andrew
Я должен быть уверен, что атрибут сеанса установлен, а get - значение – Nicolas