Le problème vient de l'opérateur.
$a = $b ;// signifie $a reçoit la valeur de $b; opération qui renvoie toujours en plus TRUE
par conséquent:
$c = ($a = $b) ; $c est toujours vrai
$c = ($a == $b);// $c prend la valeur de la comparaison entre a$ et b$ Vrai ou FAUX
$c = ($a === $b);// $c prend la valeur de la comparaison stricte entre a$ et b$ Vrai s'ils sont égaux et du même type (obligé pour certaines fonctions comme strpos qui renvoient l'entier 0 si la chaine cherchée est en première position, et le booléen FAUX (qui vaut 0 en étant d'un type différent) si elle n'est pas trouvée ou FAUX.
Ceci étant dit, cette accumulation de if serait agréablement remplacée par un switch plus facile à lire et plus facile à étendre.
switch ($gen)
{
case "AV":une étoile blanche de la séquence principale";
break;
default:
$type = "Inconnu";
}
On pourrait aussi,imaginer un tableau :
<?PHP
$genres = array(
"AV", "BV", "BIV");
$types = array(
"une étoile blanche de la séquence principale", "une étoile bleue massive", "une étoile bleue massive");
$place = array_search ("BV", $genres);
if ($place !== false)
{
$type = $types[$place];
}
print "$type";
?>
Le problème vient de l'opérateur.
$a = $b ;// signifie $a reçoit la valeur de $b; opération qui renvoie toujours en plus TRUE
par conséquent:
$c = ($a = $b) ; $c est toujours vrai
$c = ($a == $b);// $c prend la valeur de la comparaison entre a$ et b$ Vrai ou FAUX
$c = ($a === $b);// $c prend la valeur de la comparaison stricte entre a$ et b$ Vrai s'ils sont égaux et du même type (obligé pour certaines fonctions comme strpos qui renvoient l'entier 0 si la chaine cherchée est en première position, et le booléen FAUX (qui vaut 0 en étant d'un type différent) si elle n'est pas trouvée ou FAUX.
Ceci étant dit, cette accumulation de if serait agréablement remplacée par un switch plus facile à lire et plus facile à étendre.
[php]switch ($gen)
{
case "AV":une étoile blanche de la séquence principale";
break;
default:
$type = "Inconnu";
}[/php]
On pourrait aussi,imaginer un tableau :
[php]<?PHP
$genres = array(
"AV", "BV", "BIV");
$types = array(
"une étoile blanche de la séquence principale", "une étoile bleue massive", "une étoile bleue massive");
$place = array_search ("BV", $genres);
if ($place !== false)
{
$type = $types[$place];
}
print "$type";
?>[/php]