Как проверить 2 ключевых слова в PHP - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу проверить мою сессию.Код ниже работает:

if ($_SESSION["rol"] != 'trainer') {
}

Но этот код не работает:

if ($_SESSION["rol"] != 'trainer' || 'commandant') {
}

Он должен проверить оба, потому что оба имеют разрешение.Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 10 декабря 2018
$role = ['trainer','commandant'];

if(!in_array($_SESSION['rol'],$role))
{
 //do some stuff
}
0 голосов
/ 10 декабря 2018

Я, вероятно, сделаю следующее, где isset гарантирует, что ключ существует (и помогает уменьшить количество предупреждений, когда ключ недоступен):

if (isset($_SESSION["rol"]) && ($_SESSION["rol"] != 'trainer' || $_SESSION["rol"] == 'commandant')) {
    echo 'do some...';
}

array_key_exists - хорошая альтернатива использованиюisset для проверки ключей:

if (array_key_exists('rol', $_SESSION) && ($_SESSION["rol"] != 'trainer' || $_SESSION["rol"] == 
'commandant')) {
    echo 'do more...';
}

Надеюсь, это поможет.

PS: решение @dexter с in_array() со временем будет лучше и проще в обслуживании.

0 голосов
/ 10 декабря 2018

Используйте это

if ($_SESSION["rol"] != 'trainer' || $_SESSION["rol"] != 'commandant') {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...