8768 sujets

Développement web côté serveur, CMS

Bonjour ,
J'ai un petit problème avec ce bout de code php,il ne m'affiche que la première condition "premier if" .
Est ce que je peux savoir pourquoi il ne rentre pas dans les autres else if ?

<?php
                        $var_a=true;
			$var_b=true;
			if($var_a==true || $var_b==false)
			{
				$var1=3;$var2=3.5;
				echo 'premier if';
				$var_b=false;
			}
			else if($var_a==true && $var_b==false)
			{
					$var10=0;
					$var10=$var1*$var2;
					echo '<br>var10 vaut : var10='.$var10;
					$var_a=false;
			}
			else if($var_a==true || $var_b==false)
			{
					$var11=0;
					$var11=$var10/$var1;
					echo '<br>var_11 vaut manitenant var11='.$var11;
			}
			else{
					$var12=0;
					$var12=$var11-$var10;
					echo '<br>var_10 vaut manitenant var10='.$var10;
			}
?>


Merci Smiley smile
Modérateur
Bonsoir,

Premièrement parce-que la condition est validée (var_a ou var_b à true).
Deuxièmement tu as utilisé des "else if" que tu peut traduire par "Sinon ...". En gros tu pose une question est les else / else if n'entre en jeu que pour prendre le relais si la première condition n'est pas validée : Si var_a OU var_b est à "true" alors fait ça, sinon, si... etc.
peux-tu me poster un petit corrigé si je veux que le if et les deux else if marche sans le que le dérnier else ne marche ?
Modérateur
Mmmmmh j'ai essayé de comprendre un peu ce que tu voulais faire, mais je n'ai pas réussi Smiley sweatdrop

Tu peux commencer par faire de simple "if" les un sous les autres si tu veux qu'ils puissent s'activer indépendamment des autres :

if($var_a==true || $var_b==false) { // si a = true OU b = true
	$var1=3;$var2=3.5;
	echo 'premier if';
	$var_b=false;
}

if($var_a==true && $var_b==false) { // si a = true ET b = false
	$var10=0;
	$var10=$var1*$var2;
	echo '<br>var10 vaut : var10='.$var10;
	$var_a=false;
}

if($var_a==true || $var_b==false) { // si a = true OU b = false
	$var11=0;
	$var11=$var10/$var1;
	echo '<br>var_11 vaut manitenant var11='.$var11;
}

if( ??? ) { // déterminer une condition
	$var12=0;
	$var12=$var11-$var10;
	echo '<br>var_10 vaut manitenant var10='.$var10;
}


Sinon tu peux d'abord tester une des deux variables puis la seconde à l’intérieur :

if($var_a==true) {
// a = true
	if($var_b==true) {
		// a = true ET b = true
	} else {
		// a = true ET b = false
	}
} else {
// a = false
	if($var_b==true) {
		// a = false ET b = true
	} else {
		// a = false ET b = false
	}
}


Il y a certainement mieux mais je ne sais pas exactement ce que tu veux en faire.
Le mieux serait que tu arrives à poser de façon logique en français les tests que tu veux faire.

:)