Bonjour,

Je voulais savoir quelle est la bonne syntaxe :

if(isset($var) == 'valeur')
{
    #code
}

ou

if(isset($var) AND $var == 'valeur')
{
    #code
}

Car les deux semble fonctionner

Merci de vos réponses

5 réponses


Bonjour,

Ca dépend de ce que tu cherches à faire mais si comme j'imagine tu cherches à savoir si ta variable est bien définie et si elle correspond à une valeur précise c'est le 2ème choix qui est correct.

Le premier va comparer un booléen (vrai ou faux selon si ta variable est définie ou non) à ta valeur...

Très bien, merci pour cette précisionn.

Je suis en train de passer de PHP 7 à PHP 8 (il serait temps...) et lorsque je ne mets pas isset(), j'ai un Warning: Undefined.
J'imagine donc que je dois à chaque fois soit déclarer la variable null ou alors préciser à chaque fois

Par exemple voici mon ancien code :

    if($_POST['foo'] == 'bar') {
        //...
    }

Les trois differentes manières qui suivent sont elles toute bonnes ?

    $var = null;
    $var = $_POST['foo'];

    if($var === 'bar'){
        //...
    }

    if(isset($_POST['foo'])) $var = $_POST['foo'];
    else $var = null;

    if($var === 'bar'){
        //...
    }

    if(isset($_POST['foo']) AND $_POST['foo'] === 'bar'){
        //...
    }
$var = $_POST['foo'] ?? null

if ($var && $var === 'bar') {
    // ...
}

Tes propositions sont correctes sauf la première :

$var = null;
$var = $_POST['foo'];

if($var === 'bar'){
    //...
}

Ici ta variable, même si déclarée null au début, est ensuite réaffectée et peut devenir undefined donc c'est à éviter.

Ok merci pour vos infos