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
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
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 !';
<?php
$foo = 1;
if($foo == '1')
echo 'Vraie !';
Va renvoyer Vraie ! car, avec ==, PHP tente de faire correspondre les variables quelque soit le type
<?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
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 !';
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';
}
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';
}
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';
}
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';