Page 1 sur 1

Utilisation de booléen

Posté : 31 juil. 2013, 18:33
par Castor Gaspard
Bonjour,

Je développe avec WordPress et ce système de gestion de contenu dispose d'un outil de débogage.

Je ne comprends pas une alerte en Php qui n'est pas fort grave, mais agaçante car je ne la comprends pas.

1er cas
<?php
$a = '3';
if ($a == '4') :
$has_test = true;
endif;
if (! isset( $has_test) ) :
echo 'ok';
endif;
?>
ne renvoie pas d'erreur.

2ème cas
<?php
$a = '3';
if ($a == '4') :
$has_test = true;
endif;
if (! $has_test ) :
echo 'ok';
endif;
?>
renvoie une erreur "undefined_index".

3ème cas
<?php
$a = '3';
if ($a == '4') :
$has_test = true;
else :
$has_test = false;
endif;
if ( ! $has_test ) :
echo 'ok';
endif;
?>
renvoie l'erreur "undefined_index", comme si "false" est inutile (et source de bogue à l'usage dans des instructions plus complexes).

Pardon de poser une question si basique. :)

Merci pour vos lumières.

V.

Re: Utilisation de booléen

Posté : 31 juil. 2013, 18:41
par moogli
salut,


ton code ne peux pas indiquer une erreur undefinied index mais undefinied variable.

car dans le second cas la variable has_test n'existe pas !

le dernier cas ne retourne pas d'erreur (testé).

je te conseil d'éviter la syntaxe avec le endif, plus lourde à mon gout que les {}

Code fonctionnel (identique au 3ème cas)
<?php
$a = '3';
if ($a == '4') {
    $has_test = true;
} else {
    $has_test = false;
}
if (!$has_test) {
    echo 'ok';
}
@+

Re: Utilisation de booléen

Posté : 01 août 2013, 00:28
par Castor Gaspard
Bonjour Moggli,

Merci pour le conseil et les précieuses explications.

:)

Cordialement,

V.