Soucis de Variables PHP

Alphasz -  
heliconius Messages postés 539 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je m'entraîne au PHP et j'ai un soucis mais je n'arrive pas à définir lequel.. voici mon code :


<?php 

&adulte = false;
&age = 12;

if (age >= 18)
{ 
&adulte = true
}	
else 
{
&adulte = false
}

if (&adulte = true)
{
	echo 'tu es majeur';
}
else
{
	echo 'tu es mineur';
}
?> 
?> 


Merci de m'aider à comprendre mon problème


A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Il faut revoir la syntaxe php :
- les variables doivent être précédées du symbole $ et par &
- il manque un point-virgule à la fin des lignes d'affectation de la variable $adulte
- le symbole = permet de faire une affectation. Si tu veux comparer deux valeurs, il faut utiliser le symbole == ou === (comparaison stricte)
- tu as une fermeture de balise php en trop

Bonne journée,
0
Alphasz
 
Merci beaucoup, je vais revoir mon code, je m'entraîne est c'est bien d'avoir des personnes prêtes à aider les débutants comme moi :)
0
Alphasz
 
et ça fonctionne toujours pas..
<?php 

$adulte = false;
$age = 12;

if ($age >= 18)
{ 
$adulte = true;
} 
else 
{
$adulte = false;
}

if ($adulte = true)
{
 echo 'tu es majeur';
}
else
{
 echo 'tu es mineur';
}
?> 
0
heliconius Messages postés 539 Date d'inscription   Statut Membre Dernière intervention   142 > Alphasz
 
Bonjour,

1) Tu peux placer tes accolades sur la même ligne, sur des lignes différentes, peu importe pourvu qu'elles correspondent. Cependant, au début pour voir les erreurs plus facilement, il faut adopter une écriture qui rendre "visible" le code pour traquer plus facilement les erreurs. Là, j'ai du mal à voir ta structure. Pour ma part, j'aurais écrit :
<?php 
$adulte = false;
$age = 12;

if ($age >= 18) { $adulte = true;  } 
else            { $adulte = false; }

if ($adulte == true) { echo 'tu es majeur'; }
else                 { echo 'tu es mineur'; }
?>

2) Ensuite, Pitet te l'a dit : le égal d'affectation s'écrit = alors que le égal de comparaison s'écrit == ; donc if($adulte == true)

3) Tu initialises la variable $adulte à false. Ok. Ensuite tu testes l'âge. Ok. Et si $age >= 18, tu remets $adulte à true. Ok. Cependant la seconde partie de ton test est inutile. Il est en effet inutile de dire que si ce n'est pas >= 18 il faut positionner $adulte à false, puisqu'il est DEJA à false. Ce else n'apporte rien si ce n'est qu'une perte de temps à exécuter des instructions inutiles.

4) le principe du if est d'exécuter le code entre accolade si le test entre parenthèses est vrai (true) ou, encore plus précisément, test ou pas test, si ce qui est entre parenthèses est vrai. Comme adulte est vrai, inutile de tester s'il est vrai.

Ce qui donne le code suivant :
<?php 
$adulte = false;
$age = 12;

if ($age >= 18) { $adulte = true;  } 

if ($adulte) { echo 'tu es majeur'; }
else         { echo 'tu es mineur'; }
?>


A propos de vrai/faux :
- Les nombres. un nombre égal à 0 est considéré comme faux et vrai pour toute autre valeur positive ou négative :
$n = 12;
if($n) { echo "le nombre n est non nul puisqu'il est égal à $n"; }

Ce qui est entre parenthèses est vrai puisque la variable $n, non nulle, est vraie.

- les chaînes de caractères : une chaîne égale à '' ou "" (nulle) est considérée comme fausse et vraie pour les autres cas :
$prenom = "Jean";
if($prenom) { echo "Bonjour $prenom"; }
else        { echo "Bonjour,  mais nous n'avons pas été présentés."; }

Ce qui est entre parenthèses est vrai puisque la variable $prenom, non nulle, est vraie.
0