Сократите несколько условий в одно, чтобы увидеть, соответствует ли переменная какому-либо тексту
Есть ли способ сократить это?
<?php if (($_SESSION['Particulos'] == "L")OR($_SESSION['Particulos'] == "E")) { } ?>
к чему-то вроде этого:
<?php if ($_SESSION['Particulos'] == "L" OR "E") { } ?>
или я должен всегда писать $Session?
я смотрел на страницу PHP, но примеры не ясны для меня.
3 answers
<?php if( strpos("LE", $_SESSION['Particulos']) !== false ) { } ?>
strpos
ищет позицию в string
"ЛЕ", где находится значение переменной $_SESSION
, если она не возвращается false
.
Еще один короче, используя регулярное выражение:
<?php if( preg_match("(L|E)", $_SESSION['Particulos']) ) { } ?>
Ну, Каси. LoL.
С массивом:
<?php if( in_array( $_SESSION['Particulos'], ['L','E']) ) { } ?>
Другое:
<?php if( strpos("=LE", $_SESSION['Particulos']) ) { } ?>
<?php if ($_SESSION['Particulos'] == "L" || $_SESSION['Particulos'] == "E") {}?>
Это самая короткая форма, которую я знаю!. Приветствия
<?php if ($_SESSION['Particulos'] == "L" OR "E") { } ?>
Этот метод невозможен, потому что при вызове объявления OR
мы "перезапускаем" запрос того, что мы ищем!. Это означает, что в этом случае "E" останется нулевым или недействительным.
<?php
$copy=$_SESSION['Particulos'];//copiando a una variable
if ($copy == "L" || $copy== "E") { } //trabajamos solamente con la variable copy
?>
Или с switch
Проверьте: http://php.net/manual/es/control-structures.switch.php
<?php
$copy=$_SESSION['Particulos'];//copiando a una variable
switch ($copy) {
case "L":
echo "es L";
break;
case "E":
echo "es E";
break;
}
?>