<!DOCTYPE html> <html lang="en"> <head> <title>Cours dev bak</title> </head> <body> <h1>Cours dev back session 3 : rappels opérateurs</h1> <a href="index.php">retour aux rapppels sur les variables</a> <hr> <h2> opérateurs arithmétiques </h2> <?php //les opérateurs arithmétiques, permettent de faire des opérations $a=2; $b=3; // on peut utiliser indifféremment print ou echo echo "somme de a et b = "; print($a + $b); echo "<br/> devision de b par a (3/2) = "; print($b / $a); echo "<br/> module de b par a = reste de la division de b/a (3/2) = "; print($b % $a); // pour changer le signe d'une valeur l'opérateur unaire : echo "<br/> a en négatif = "; print(-$a); ?> <h2> opérateur concatenation . et sur les chaines</h2> Permet de coller entre elles des chaines ou des chaines à autre chose. <?php // quand on écrite le code la fin d'un instruction se termine par ; // je peux sauter autant de lignes que je veux avant ce ; echo "<br/>Bonjour " ."tout le monde ! a vaut " . $a . " aujorud'hui"; ?> Petit apparté sur les séparateur de chaines : " et ' <?php // ici $a est affiché tel quel echo '<br/>ma mariable $a vaut '.$a; // ici $a est "interprêté" echo "<br/>ma mariable $a vaut ".$a; // on "echappe" $ si on veut qu'il s'affiche entre doule quotte echo "<br/>ma mariable \$a vaut ".$a; // ou sans concaténation echo "<br/>ma mariable \$a vaut $a"; echo "<br/>en français on beaucoup d'apostrophe donc j'utilise \" \" "; echo "<br/>si je veux un 'antislash' je le préfixe par un \\ "; echo '<br/>en SQL on beaucoup de guillements donc j\'utilise \' \' '; ?> <h2> opérateurs de comparaisons / opérateurs logiques</h2> <br> ==, !=, >=, <= , >, < ... pour les comparaisons simples (sans vérfication de type) <br> ===, !== pour les comparaisons avancées (avecx vérfication de type) <br> ! opérateur unaire pour inversion de valeur vrai => faux, faux => vrai <?php echo "<br>"; $a = true; var_dump($a); echo "<br>"; $b = !$a; var_dump($b); ?> <br/> pour le chainage de conditions on utilise && pour "et", || pour "ou" <br/> le caractère | s'appelle "pipe" en anglais et peut s'obtenir avec <Alt Gr>+6 sur un clavier pc, et <Alt + Shift> + L sous mac <?php // deux comparaisons avec et echo "<br/> a = 2"; $a=2; $vrai = ( ($a > 1) && ($a < 6) ); echo " ( ($a > 1) && ($a < 6) ) est : "; var_dump($vrai); // deux comparaisons avec et echo "<br/> a = 2"; $a=-2; $vrai = ( $a > 1 || $a < -1 ); echo " ( $a > 1 || $a < -1 ) est : "; var_dump($vrai); ?> <h2>priorité des opérateurs</h2> Comme en mathématique les opérateurs ont une précédence (priority) cf : <a href="https://www.php.net/manual/fr/language.operators.precedence.php">référence</a> <h2>opérateur ternaire le mini if then else</h2> Deux solutions pour réaliser le pseudo code suivant <pre> variable a, b : entiers a=2; b=0; Si a est supérieur à 1 alors b = a*a; Sinon b = -a; Fin si </pre> <?php $a=2; $b=0; if($a > 1) { $b = $a*$a; } else { $b = -$a; } echo "<br/> à l'issue de l'exécutoin du premier b vaut ".$b; $a = 2; $b = ( $a>1 ? $a*$a : -$a ); echo "<br/> à l'issue de l'exécutoin du premier b vaut ".$b; ?> <br/> L'opérateur ternaire <b>?:</b> pertmet de faire une affactation conditionnelle qui vaut : <ul> <li>ce qui est avant le ":" si la condition avant le "?"" est vraie,</li> <li>ce qui est après le ":" si la condition avant le "?"" est fausse</li> </ul> </body> </html>