web-dev-qa-db-fra.com

PHP Si déclaration avec plusieurs conditions

J'ai un variable$var.

Je veux echo "true" si $var est égal à l’une des valeurs suivantes abc, def, hij, klm ou nop. Y a-t-il un moyen de faire cela avec une seule instruction comme && ??

26
blasteralfred Ψ
if($var == "abc" || $var == "def" || ...)
{
    echo "true";
}

Utiliser "Ou" au lieu de "Et" aiderait ici, je pense

37
Tokk

Une méthode élégante consiste à créer un tableau à la volée et à utiliser in_array():

if (in_array($var, array("abc", "def", "ghi")))

La déclaration switch est également une alternative:

switch ($var) {
case "abc":
case "def":
case "hij":
    echo "yes";
    break;
default:
    echo "no";
}
95
Pekka 웃

vous pouvez utiliser la fonction in_array de php

$array=array('abc', 'def', 'hij', 'klm', 'nop');

if (in_array($val,$array))
{
  echo 'Value found';
}
11
Shakti Singh

Ne sais pas, pourquoi vous voulez utiliser &&. Theres une solution plus facile

echo in_array($var, array('abc', 'def', 'hij', 'klm', 'nop'))
      ? 'yes' 
      : 'no';
11
KingCrunch

vous pouvez utiliser l'opérateur booléen ou: ||

if($var == 'abc' || $var == 'def' || $var == 'hij' || $var == 'klm' || $var == 'nop'){
    echo "true";
}
4
sauerburger

J'ai trouvé cette méthode a fonctionné pour moi:

$thisproduct = "my_product_id";
$array=array("$product1", "$product2", "$product3", "$product4");
if (in_array($thisproduct,$array)) {
    echo "Product found";
}
3
IC360 Oliver Cannell

Vous pouvez essayer ceci:

<?php
    echo (($var=='abc' || $var=='def' || $var=='hij' || $var=='klm' || $var=='nop') ? "true" : "false");
?>
3
Osh Mansor

Essayez ce morceau de code:

$first = $string[0]; 
if($first == 'A' || $first == 'E' || $first == 'I' || $first == 'O' || $first == 'U') {
   $v='starts with vowel';
} 
else {
   $v='does not start with vowel';
}
1
paul

Il sera bon d’utiliser un tableau et de comparer chaque valeur 1 à 1 en boucle. Il est avantageux de changer la longueur de votre tableau de tests. Ecrivez une fonction prenant 2 paramètres, 1 est un tableau de test et un autre est la valeur à tester.

$test_array = ('test1','test2', 'test3','test4');
for($i = 0; $i < count($test_array); $i++){
   if($test_value == $test_array[$i]){
       $ret_val = true;
       break;
   }
   else{
       $ret_val = false;
   }
}
0
Owais Akber