Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1485 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Concaténation difficile

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Concaténation difficile

n°838276
Tolor
Mais heu...
Posté le 31-08-2004 à 19:57:18  profilanswer
 

Je récolte pas mal de problèmes sur ces lignes.
 

Code :
  1. if ("$obj->Test"==0){
  2. echo "<td align='center' valign='middle' bgcolor='#DDEEEE'><a href=\"javascript:action('".$obj->Code."','".$obj->Test."')\"><img src=\"http://www.tolo-serv.net/".$obj->Code.".gif\" border='0'></a></td>";
  3. }
  4. else
  5. {
  6. echo "<td align='center' valign='middle' bgcolor='#DDEEEE'><a href=\"javascript:action('".$obj->Code."','".$obj->Test."')\"><img src=\"http://www.tolo-serv.net/smileys/".$obj->Code.".gif\" border='0'></a></td>";
  7. }


 
Déjà, à la première ligne, le test ne passe pas.
En omettant cette erreur, je me retrouve encore avec une erreur lors de la déclaration des paramètres de la fonction action (apparemment, un problème de concaténation)
 
Je vois pas bien comment résoudre ces deux problèmes [:gratgrat]


Message édité par Tolor le 31-08-2004 à 19:58:22

---------------
Je ne crois qu'aux statistiques que j'ai moi-même falsifiées
mood
Publicité
Posté le 31-08-2004 à 19:57:18  profilanswer
 

n°838284
Xav_
The only one...
Posté le 31-08-2004 à 20:06:59  profilanswer
 

essai de décomposer ta concaténation en plusieur étapes
 
quand tu fait:

Code :
  1. $msg="toto";
  2. $msg.=" fait du vélo";


ton $msg vaut "toto fait du vélo"
 
et puis dans tout les cas ton code est le meme, il n'y a que le "src" qui change, donc tu ne dois soumettre que ton src au conditionnemet, le reste peut etre ecrit en HTML, meme pas besoin d'un echo PHP...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°838295
kalex
Posté le 31-08-2004 à 20:22:36  profilanswer
 

> Déjà, à la première ligne, le test ne passe pas.  
Enlève les guillemets.

n°838553
Xav_
The only one...
Posté le 01-09-2004 à 09:49:51  profilanswer
 

kalex a écrit :

> Déjà, à la première ligne, le test ne passe pas.  
Enlève les guillemets.


 
j'avais pas fait gaffe à celle-là, c'est vrai que les guillements autour de la variable dans la condition du "if", c'est pas bien...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°838640
jagstang
Pa Capona ಠ_ಠ
Posté le 01-09-2004 à 11:22:37  profilanswer
 

c'est ce qui arrive lorsqu'on code comme un goret.
 
code redondant dans le teste, pas d'indentation


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°838650
Xav_
The only one...
Posté le 01-09-2004 à 11:35:40  profilanswer
 

JagStang a écrit :

c'est ce qui arrive lorsqu'on code comme un goret.


 
c'est vrai que ce qu'il a fait n'est pas très académique... mais t'y va peut etre un peu fort Jag ;)
 
sinon pour répondre, je propose un truc du genre

Code :
  1. <?
  2. if ($obj->Test==0)
  3.    {
  4.    $src="http://www.tolo-serv.net/".$obj->Code.".gif";
  5.    }
  6. else
  7.    {
  8.    $src="http://www.tolo-serv.net/smileys".$obj->Code.".gif";
  9.    }
  10. ?>
  11. après du html de base:
  12. <td align='center' valign='middle' bgcolor='#DDEEEE'> ...etc...
  13. avec <img src=<? echo $src; ?> border='0'> ...etc...


 
je pense que ça doit faire ce qu'il veut...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°838707
jagstang
Pa Capona ಠ_ಠ
Posté le 01-09-2004 à 13:28:06  profilanswer
 

c'est tout à fait ce que je voulais dire. perso, j'enlève même les {} inutiles et c'est parfait.  
 
désolé pour mon ton un peu direct


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°838730
Xav_
The only one...
Posté le 01-09-2004 à 13:47:57  profilanswer
 

j'avais compris, que c'était ce que tu voulais dire avec "code redondant", j'avais déjà fait la remarque 2 posts plus tot... :D
 
ben pour les "{}" c'est l'habitude,je les fous dès que je met un "if" pour etre sur de pas les oublier, mais c'est vrai que si ya qu'une ligne, he ben il servent à rien...
 
Habitude quand tu nous tiens... ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°838745
kalex
Posté le 01-09-2004 à 13:56:18  profilanswer
 

Xav_ a écrit :

j'avais compris, que c'était ce que tu voulais dire avec "code redondant", j'avais déjà fait la remarque 2 posts plus tot... :D
 
ben pour les "{}" c'est l'habitude,je les fous dès que je met un "if" pour etre sur de pas les oublier, mais c'est vrai que si ya qu'une ligne, he ben il servent à rien...
 
Habitude quand tu nous tiens... ;)

Garde ton habitude ! Moi j'ai pris l'habitude inverse (supprimer les accolades lorsque c'est possible) et ça me coûte parfois des petits bugs, et surtout de l'incompréhension de la part des débutants. De plus sans bonne indentation c'est incompréhensible (là, ça peut aussi être un +).
 
Par contre, j'aime bien la notation courte (?:).
 
Edit : désactivation des smileys (cf ligne au dessus). :D


Message édité par kalex le 01-09-2004 à 13:59:27
n°839232
cerel
Posté le 01-09-2004 à 22:04:55  profilanswer
 

Il faut prefere les accolades tout le temps. Pourquoi ca ?
Car 1 : ca facilite la comprehension du code (bon ok, faut indenter :D).
Car 2 : si vous voulez debuger, vous aller moins vous embeter si l'accolade est deja la, il ne reste plus qu'a ajouter sa ligne de debug favorite.
Alors que s'il n'y a pas deja d'accolades, alors il faut ajouter les accolades, re indenter le code puis ajouter la ligne de debug...
 
Sinon concernant l'operateur ternaire, bien que ce dernier soit pratique, il est plus lent que l'equivalent if else. Donc il ne faut pas en abuser.

mood
Publicité
Posté le 01-09-2004 à 22:04:55  profilanswer
 

n°839251
kalex
Posté le 01-09-2004 à 22:22:45  profilanswer
 

> ...il est plus lent que l'equivalent if else
J'ai jamais réalisé ça. C'est sensible comme différence ?

n°839324
Tolor
Mais heu...
Posté le 01-09-2004 à 23:41:44  profilanswer
 

Merci,  
Je vais voir ça...
C'est pas que je "code comme un goret", c'est surtout que le php, c'est pas trop mon langage de prédilection...


Message édité par Tolor le 01-09-2004 à 23:42:31

---------------
Je ne crois qu'aux statistiques que j'ai moi-même falsifiées
n°839326
pains-aux-​raisins
Fatal error
Posté le 01-09-2004 à 23:48:29  profilanswer
 

Cerel a écrit :

Sinon concernant l'operateur ternaire, bien que ce dernier soit pratique, il est plus lent que l'equivalent if else. Donc il ne faut pas en abuser.


Une légende urbaine est lancée... :whistle:

n°839418
jagstang
Pa Capona ಠ_ಠ
Posté le 02-09-2004 à 09:27:44  profilanswer
 

je crois en effet que l'opérateur ternaire ?: est moins rapide. mais, on parle de PHP, et de langage interprété là. donc pas de soucis hein...
 
sinon, l'utilisation des {}, perso je réfléchis avant de coder, ce qui m'évite d'enlever/mettre des accolades pour ajouter un ligne


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°839423
Profil sup​primé
Posté le 02-09-2004 à 09:34:13  answer
 

pains-aux-raisins a écrit :

Une légende urbaine est lancée... :whistle:

non ca a été prouvé [:spamafote]

n°839457
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 09:55:39  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Concaténation difficile

 

Sujets relatifs
concatenation + une valeurconcatenation
concatenation Nom-DateConcatenation super simple de chaine de caractere
[Python] TypeError sur une concaténation de chaines [Résolu]pb concaténation et variables
[RAVE 5.0]Concatenation au lieu d additiontruc tout bête de concaténation je pense mais la je seche....
multi-concatenation[PHP] Concaténation difficile à comprendre
Plus de sujets relatifs à : Concaténation difficile


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR