H2 - P2019

Développement web

Cours 18 - 2016-01-25

PHP

Conditions

IF

IF

If permet de tester qu'une condition soit vraie

Fonctionne comme en javascript


<?php
    $foo = true;

    if($foo == true)
    {
        echo 'Vraie !';
    }
                    

Vraie ! va s'afficher car $foo = true

IF

Comme en JS, lorsqu'il n'y a qu'une seule instruction, il n'est pas nécessaire d'écrire les accolades { }


<?php
    $foo = true;

    if($foo == true)
        echo 'Vraie !';

    // 'Vraie !' va s'afficher

                    

IF

Si l'on test que la valeur doit être true ou false il n'est pas nécessaire de l'écrire


<?php
    if($foo == true)
        echo 'Vraie !';

    if($foo == false)
        echo 'Faux !';

                    

Équivaut à


<?php

    if($foo)
        echo 'Vraie !';

    if(!$foo)
        echo 'Faux !';

                    

IF


<?php
    $foo = 1;
    if($foo == '1')
        echo 'Vraie !';

                    

Va renvoyer Vraie ! car, avec ==, PHP tente de faire correspondre les variables quelque soit le type

IF


<?php
    $foo = 1;
    if($foo === true)
        echo 'Vraie !';
                    

Ne va pas renvoyer Vraie ! car, avec === (triple égalité), PHP va aussi tester le type de la variable

IF

Exercice


<?php
    if('1' == 1)
        echo 'vraie !';

    if('1' === 1)
        echo 'vraie !';
        
    if('1' !== 1)
        echo 'vraie !';
        
    if('1' != 1)
        echo 'vraie !';
        
    if('1' == true)
        echo 'vraie !';
        
    if(1 === true)
        echo 'vraie !';

                    

ELSE

Comme en JS, le ELSE est interprété si le IF ne l'est pas


<?php
    $foo = false;

    if($foo)
    {
        echo 'dans le IF';
    }
    else
    {
        echo 'dans le ELSE';
    }

                    

SWITCH ... CASE

Switch ... Case

Le format suivant peut-être écrit plus simplement avec un switch


<?php
    $foo = 3;

    if($foo == 1)
    {
        echo 'On fait ça';
    }
    else if($foo == 2)
    {
        echo 'Ou alors ceci';
    }
    else if($foo == 3)
    {
        echo 'Ou encore cela';
    }
    else
    {
        echo 'Sinon ça';
    }

                    

Switch ... Case

Avec le switch


<?php
    $foo = 3;

    switch($foo)
    {
        case 1:
            echo 'On fait ça';
            break;
        case 2:
            echo 'Ou alors ceci';
            break;
        case 3:
            echo 'Ou encore cela';
            break;
        default:
            echo 'Sinon ça';
    }

                    
BONUS

IF ternaire

Il est possible de se passer du IF lors d'une assignation ou d'un echo


<?php
    $foo = true;

    $bar = $foo ? 'toto' : 'tata';

    echo $foo ? 'oui' : 'non';