bonjour, voila j'ai une erreur parse error sur cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part $body.='Titre : <input type="text" name="titre" value="'.if (isset($categorie)) $categorie->getTitre().'" /><br />';![]()








bonjour, voila j'ai une erreur parse error sur cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part $body.='Titre : <input type="text" name="titre" value="'.if (isset($categorie)) $categorie->getTitre().'" /><br />';![]()
Salut
Tu fais une concaténation en Php qui contient des instructions comme une alternative, ce qui n'est pas correcte au niveau syntaxe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2'.if (isset($categorie)) $categorie->getTitre().'
Le plus simple serait de faire ainsi :
Ou alors :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $body.= 'Titre : <input type="text" name="titre" value="'; if (isset($categorie)) $body.= $categorie->getTitre(); $body.= '" /><br />';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $body.= 'Titre : <input type="text" name="titre" value="'.(isset($categorie) ? $categorie->getTitre() : '').'" /><br />';








merci donc j' ai fait ca:
petit probleme par contre lors de ma lsite deroulante car elle comporte un foreach donc syntaxe error a la ligne avant le foreach:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if(isset($_GET['ajouter']) || isset($_GET['modifier'])) { $body .= !isset($categorie) ? 'Description : <input type="text" name="description"><br />' : 'Description: <input type="text" name="description" value="'.$categorie->getDescription().'"><br />'; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 if(isset($_GET['ajouter']) || isset($_GET['modifier'])) { $body .= !isset($categorie) ? '<br /><select name="idSupCategorie">'. foreach ($manager->getList() as $categorieSup) { // Affichage de la ligne $body.='<option value="'.$categorieSup->getId().' selected="1"">'.$categorieSup->getTitre().'</option>'; } $body.='</select><br />': ' <select name="idSupCategorie"> <br /><select name="idSupCategorie">'; foreach ($manager->getList() as $categorieSup) { // Affichage de la ligne $body.='<option value="'.$categorieSup->getId().'">'.$categorieSup->getTitre().'</option>'; } $body.='</select><br />'; }![]()
Il y a 2 choses qui ne sont pas tout à fait bien comprises à mon sens.
- La concaténation
qui à mon sens est indispensable à comprendre car on en a souvent besoin.
Mais apparemment c'est juste pour un seul cas où ça n'est pas zen.
Ceci n'est pas permis, ce type de concaténation, c'est à dire de mettre un point (qui marque le début de la concaténation) et mettre un foreach() juste après.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $truc = '... blablabla'. foreach ($manager->getList() as $categorieSup)
Pareil pour quasi tout, comme if, switch, while, une fonction, etc ...
Le plus simple est de découper :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $truc = '... blablabla'; // On stop la ligne avec ; // On continu foreach () { $truc .= 'blablabla'; // Le .= fera que la chaine se cumulera. } // Et on poursuit à nouveau $truc .= 'blablabla'; // Idem avec .=
- L'opérateur ternaire
qui n'est franchement pas indispensable.
La doc : http://php.net/manual/fr/language.op...comparison.php
L'opérateur ternaire, à titre personnel, je l'utilise uniquement quand l'ensemble de la condition rentre sur une ligne, donc quand il y a très peu de code.
Sinon, (ce qui est ton cas), j'utilise une condition tout ce qui a de plus classique.
La raison est simple, c'est que l'opérateur ternaire devient quasi incompréhensible au-delà d'une ligne.
Quand on le fait à l'instant, on y arrive, mais quand on revient sur ce même code 6 mois plus tard, il faut une loupe, un microscope pour détecter que c'est une ternaire.
Il y a trop de risque de faire une erreur à mon sens.
Faire comme ceci serait plus simple, et surtout 100% lisible, compréhensible :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if (isset($categorie)) { // Code lorsque $categorie exite $truc = '...'; } else { // Code quand $categorie n'existe pas $truc = '...'; }








ok merci pour ces conseils je prend note.![]()
Partager