Проверьте, является ли NULL для части переменных сеанса в PHP - PullRequest
1 голос
/ 18 марта 2012

Если у меня 30 переменных сеанса, и я хочу сделать оператор if только для 10 из них.

if (empty($_SESSION['XYZ'])) {
   $_SESSION['XYZ'] = 0;
}

что мне делать? Должен ли я вызывать оператор if после каждой сессии переменные, которые мне нужны?

Ответы [ 5 ]

1 голос
/ 18 марта 2012

Подумайте о том, чтобы поместить имена ключей в массив, а затем выполнить цикл foreach.

$keys = array('x','y','z');
foreach ($keys as $key)
{
    if (empty($_SESSION[$key])
    {
        // do stuff
    }
}

Преимущество заключается в том, что вы можете быстро добавлять или удалять ключи для проверки.

1 голос
/ 18 марта 2012
$vars = array('XYZ','ABC','DEF');

foreach($vars as $i){
  if(empty($_SESSION[$i])) $_SESSION[$i] = 0;
}

[править]
Мне нравится, что мы получаем один и тот же ответ 4 раза и считаем!

0 голосов
/ 18 марта 2012

Вы можете перечислить ключи, которые вы хотите обнулить в массиве и установить их следующим образом:

$keys = array('XYZ','FOO','BAR');

foreach ($keys as $key) {
  if (empty($_SESSION[$key])) {
    $_SESSION[$key] = 0;
  }
}
0 голосов
/ 18 марта 2012

Как-то так?

$keys = array("A", "B", "C", "D", "E", "F");
foreach ($keys as $key) {
    if (empty($_SESSION[$key])) {
        $_SESSION[$key] = 0;
    }
}
0 голосов
/ 18 марта 2012

Если они последовательно, то есть от 0 до 29, вы можете использовать цикл для их обхода!

...