[php]besoin explication sur une ligne de code

Résolu/Fermé
Lisadu62 Messages postés 46 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 14 janvier 2011 - 9 avril 2006 à 12:49
Lisadu62 Messages postés 46 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 14 janvier 2011 - 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>"
A voir également:

5 réponses

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.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
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.
https://www.commentcamarche.net/contents/802-php-les-operateurs

lami20j
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
9 avril 2006 à 13:18
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
0
Lisadu62 Messages postés 46 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 14 janvier 2011 3
9 avril 2006 à 14:20
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...(???)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
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)
0
Lisadu62 Messages postés 46 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 14 janvier 2011 3
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!
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
9 avril 2006 à 14:50
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lisadu62 Messages postés 46 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 14 janvier 2011 3
11 avril 2006 à 11:27
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!
0