Posez votre question Signaler

[php]besoin explication sur une ligne de code [Résolu]

Lisadu62 43Messages postés 24 février 2005Date d'inscription 14 janvier 2011Dernière intervention - Dernière réponse le 11 avril 2006 à 11:27
Salut!

Je relis une correction d'exercice mais je ne comprends pas la dernière ligne. A quoi servent les points? Quand mettre des guillemets? Merci!

for ($lig=1;$lig<=10;$lig++) {
echo "<td>".($col*$lig)."</td>"
Lire la suite 

[php]besoin explication sur une ligne de code »

8 réponses
Réponse
+0
moins plus
Salut Lisa,

les . servent à séparer les différentes instructions, qui sont sur la ligne; en effet tu as plusieurs instructions dans la ligne suivante
echo "<td>".($col*$lig)."</td>"


La première:
echo "<td>"

La seconde:
echo "($col*$lig)"

La troisième:
echo "</td>"


Toutes ces instructions echo étant regroupées sur une seule ligne, on utilise un seul echo pour les afficher et on les sépare par des points.
lami20j- 9 avril 2006 à 13:20
Salut,

les . servent à séparer les différentes instructions,


je ne suis pas d'accord avec toi.

Il s'agit d'opérateur de concatenation.
http://www.commentcamarche.net/php/phpop.php3

lami20j
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

"<td>".($col*$lig)."</td>"

l'expression est constitué de 3 parties

"<td>" - une chaîne de caractères (dans ce cas une balise html)
.($col*$lig). - un produit entre de variable encadré par 2 points (je ne fais pas php mais il s'agit d'un opérateur de concatenation)
"</td>" - idem que le 1er

Donc l'affichage sera : la 1ère chaîne collée du résultat du produit collée de la 2 chaîne
En bref

pour les valeurs de $lig de 1 à 10 ecrit écrit
"<td>".($col*$lig)."</td>"

Qui donne
"<td>".($col*1)."</td>"
"<td>".($col*2)."</td>"
.
.
"<td>".($col*10)."</td>"

Donc dans ta page html ou php tu aura 10 lignes de genre
<td>$col*n</td>
où n de 1 à 10 et $col sera la valeur que tu utilise pour cette variable

lami20j
Ajouter un commentaire
Réponse
+0
moins plus
Ici il n'y a pourtant rien à concaténer:

<?php echo "La somme de Param1 et de ParamN vaut : ".($_GET["Param1"]+$_GET["ParamN"]); ?>

et il n'y a qu'un seul point...(???)
lami20j- 9 avril 2006 à 14:26
Re,

<?php echo "La somme de Param1 et de ParamN vaut : ".($_GET["Param1"]+$_GET["ParamN"]); ?>

Ah, bien sûr que oui

- ici tu as une chaîne ( entre guillemets)
<?php echo "La somme de Param1 et de ParamN vaut : "

- ici concatenation
.

- ici une somme entre 2 parametre
($_GET["Param1"]+$_GET["ParamN"]); ?>

Pour voir essaie d'écrire ton expression comme ça

<?php echo "La somme de Param1 et de ParamN vaut : ($_GET["Param1"]+$_GET["ParamN"])"; ?>

donc j'ai enlevé l'opérateur point.

lami20j

P.S. En fait tu as besoin de l'opérateur pour pouvoir permettre l'opération d'addition,puisque si tu mets tout entre les guillemets le signe + sera traité comme un caractère ordinaire et pas en tant qu'opérateur d'addition.

Dans ta demande tu doit concatener à gauche et à droite

x concatené avec y concatené avec z

en revanche ici tu concatenes seulement à gauche puisqu'à droit tu n'as rien à concatener

"a"."b" veut dire a concatené avec b qui donne ab
"a"." "."b" veut dire concaten a avec un espace et ensuite concatene avec b ce qui donne a b

"a".(2+4) donne a6
"a(2+4)" donne a(2+4)
Lisadu62- 9 avril 2006 à 14:39
ok, alors en fait tout ce qui est du html ou du texte à afficher, il faut le mettre entre guillemets. Le reste, ce qui est à interprêter, doit être mis entre points...merci pour ton aide!
Ajouter un commentaire
Réponse
+0
moins plus
Re,

en fait moi je vois les choses comme ça ( je parle du principe ) :

Une chaîne de caractère qu'elle soit du Html ou Text ou Chiffres ou n'importe quels caractères il faut la delimitér avec les guillemets (comme j'ai dit plus haut je ne travaille pas en php, je travaille en Perl).

N'oublie pas qu'il y a aussi des cas particuliers (par exemple quand on a des guillemets entre des guillemets).

En revanche si tu veut insèrer une expression dans une chaîne tu obtiendras la chaîne elle même et pas son résultat.

Si tu veut ajouter quelque part à l'intérieur d'une chaîne le résultat d'une expression alors cette expression tu ne doit pas la mettre entre guillemets.
En ce cas tu utilise l'opérateur de concatenation . ( en Perl c'est pareil )

Ex :

"La somme 2 + 4 à : ".(2+4)." comme résultat."

Qui donne : La somme 2 = 4 à 6 comme résultat.
Tu as remarqué que le point à l'intérieur des guillemets est interprété comme le caractère point et pas en tant qu'opérateur de concatenation.

lami20j
Ajouter un commentaire
Réponse
+0
moins plus
Encore besoin d'aide! Cette fois ci c'est dans le cadre d'une création d'agenda.

// Fonction qui change la valeur de l'état de la tache (Fait ou pas Fait)
function FaitOuPas($IdTache)
{
echo "Changement d'état de la tache N° ".$IdTache;
$query="update Taches set Etat=(Etat+1)%2 where IdTache=".$IdTache;
echo "<p><strong>$query</strong></p>";
mysql_query($query);
}

j'ai du mal à saisir le "=(Etat+1)%2" ainsi que la dernière ligne!
Ajouter un commentaire
Ce document intitulé « [php]besoin explication sur une ligne de code » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?