Utiliser des opérateurs logiques dans un switch

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Utiliser des opérateurs logiques dans un switch

par raptor » 11 août 2005, 22:43

tu peux pas faire avec
<?php

$i=$_GET['i'];
switch ($i){
        case'1':
         echo '1 ';
        case'2':
         echo '2 '; 
:?:

par Cyrano » 11 août 2005, 22:43

C'est quoi les "&&" ?
Après "case", PHP attend une valeur. Ensuite si tu ne mets pas de break après les instructions d'un case, les autres seront également testés inutilement.
<?php
$i=$_GET['i'];
switch ($i){
    case 1:
         echo '1 ';
    break;
    case 2:
         echo '2 ';
    break;
    case 4:
         echo '4 ';
    break;
    case 8:
         echo '8 ';
    break;
    case 16:
         echo '16 ';
    break;
    case 32:
         echo '32 ';
    break;
    case 64:
         echo '64 ';
    break;
    case 128:
         echo '128';
    break;
}
?>
Ceci dit, un truc doit m'échapper parce que ce code, il y aurait une manière radicale de le simplifier :
echo(isset($_GET['i']) ? $_GET['i'] : "Aucune valeur reçue");

Utiliser des opérateurs logiques dans un switch

par Ygnobl » 11 août 2005, 22:35

Bonjour, je voudrais utiliser une variable pour représenter un champ de bits, et la tester avec un switch. Pour commencer, j'ai testé avec ce petit code:
<?php

$i=$_GET['i'];
switch ($i){
        case && 1:
         echo '1 ';
        case && 2:
         echo '2 ';
        case && 4:
         echo '4 ';
        case && 8:
         echo '8 ';
        case && 16:
         echo '16 ';
        case && 32:
         echo '32 ';
        case && 64:
         echo '64 ';
        case && 128:
         echo '128';
}


?>
s'il était possible d'utiliser des opérateurs booléens dans un switch.
Au vu du message d'erreur que m'a retourné PHP 4.4, j'en ai déduit que non. Comment puis-je faire de manière plus élégante qu'en alignant des if ($i && $valeur) ?