Сократите несколько условий в одно, чтобы увидеть, соответствует ли переменная какому-либо тексту


Есть ли способ сократить это?

<?php if (($_SESSION['Particulos'] == "L")OR($_SESSION['Particulos'] == "E")) { } ?>

к чему-то вроде этого:

<?php if ($_SESSION['Particulos'] == "L" OR "E") { } ?>

или я должен всегда писать $Session?

я смотрел на страницу PHP, но примеры не ясны для меня.

 5
php
Author: Mariano, 2017-01-22

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']) ) { } ?>

 11
Author: Islam Linarez, 2017-01-22 04:08:22
<?php if ($_SESSION['Particulos'] == "L" || $_SESSION['Particulos'] == "E") {}?>

Это самая короткая форма, которую я знаю!. Приветствия

<?php if ($_SESSION['Particulos'] == "L" OR "E") { } ?>

Этот метод невозможен, потому что при вызове объявления OR мы "перезапускаем" запрос того, что мы ищем!. Это означает, что в этом случае "E" останется нулевым или недействительным.

 2
Author: Ruben, 2017-02-04 03:09:49
<?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;
}
?>
 1
Author: x-rw, 2017-01-22 01:08:23