Echo ou Print ?

Echo ou Print ? - PHP - Programmation

Marsh Posté le 29-06-2005 à 18:07:48    

Bonjour, je voulais savoir si vous êtes plutôt "echo" ou plutôt "print" et pour quelle(s) raison(s).


---------------
Be Free, Be Linux, Be Penguin !
Reply

Marsh Posté le 29-06-2005 à 18:07:48   

Reply

Marsh Posté le 29-06-2005 à 18:15:01    

echo est censée être un tout petit chouilla plus rapide étant donné qu'elle ne renvoie rien (ce n'est d'ailleurs pas vraiment une fonction).
 
print, qui n'est pas non plus vraiment une fonction d'ailleurs, renvoie par contre toujours 1. On peut donc la mettre dans la condition d'un if, ou alors dans une structure en ?:.
 
Le plus souvent, echo suffit.


Message édité par sielfried le 29-06-2005 à 18:15:25

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-06-2005 à 18:17:15    

Heu, je suis pas très fort en php lol, tu veux dire qu'on peut vérifier si une chaîne de caractaires existe ?


---------------
Be Free, Be Linux, Be Penguin !
Reply

Marsh Posté le 29-06-2005 à 18:22:04    

Tu peux faire un truc du genre:

Code :
  1. ($a == 1) ? print 'true' : print 'false';


 
(même si je trouve ça assez moche, je préfère de loin :

Code :
  1. print ($a == 1) ? 'true' : 'false';

)
 
Avec echo, ça marche pas (la deuxième solution marche bien sûr dans les deux cas).


Message édité par sielfried le 29-06-2005 à 18:22:40

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-06-2005 à 18:27:05    

Là, franchement, j'ai rien compris.
Je n'ai que 13 ans et je suis des cours sur le net, là, j'apprend le PCRE.


---------------
Be Free, Be Linux, Be Penguin !
Reply

Marsh Posté le 29-06-2005 à 19:39:45    

patience alors, ca viendra
voila un magnifique tuto pour toi
http://www.siteduzero.com/php/

Reply

Marsh Posté le 29-06-2005 à 19:41:30    

Désolé, mais j'ai déjà tout lus, "les regex", tu le vois lol, c'est vers la fin.


---------------
Be Free, Be Linux, Be Penguin !
Reply

Marsh Posté le 29-06-2005 à 19:57:25    

ba tu n'as pas bien lu, si tu ne comprend meme pas le petit script que sielfried

Reply

Marsh Posté le 29-06-2005 à 20:15:49    

C'est ce ? qui me gêne.

Reply

Marsh Posté le 29-06-2005 à 20:31:29    

Reply

Marsh Posté le 29-06-2005 à 20:31:29   

Reply

Marsh Posté le 29-06-2005 à 20:41:14    

Le petit problème c'est que j'apprend l'allemand, et non l'anglais.

Reply

Marsh Posté le 29-06-2005 à 20:43:18    

Paracetamol a écrit :

Le petit problème c'est que j'apprend l'allemand, et non l'anglais.


 
http://fr2.php.net/manual/fr/langu [...] on.ternary  :sweat:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-06-2005 à 20:46:35    


Allemand il a dit  
 
http://fr2.php.net/manual/de/langu [...] on.ternary [:aloy]


Message édité par masklinn le 29-06-2005 à 20:46:53

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 29-06-2005 à 20:59:20    

Paracetamol a écrit :

Le petit problème c'est que j'apprend l'allemand, et non l'anglais.


 
connerie [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 29-06-2005 à 21:24:14    

Ouai bon pour en revenir au sujet moi j'utilise Echo parce que ca me rappel MS~DOS
Print ca me fait trop penser à de l'impression plutot qu'à de l'affichage...


Message édité par dwogsi le 29-06-2005 à 21:24:58
Reply

Marsh Posté le 29-06-2005 à 21:36:00    

dwogsi a écrit :

Ouai bon pour en revenir au sujet moi j'utilise Echo parce que ca me rappel MS~DOS  
Print ca me fait trop penser à de l'impression plutot qu'à de l'affichage...


 
 
[:akt]


Message édité par papy_danone le 29-06-2005 à 21:36:35
Reply

Marsh Posté le 29-06-2005 à 21:37:50    

Oui bon bah ca va, MS~DOS ca date mais c'était ca à l'époque, et ayant commencé par là il y a bien longtemps bah ca ma quelque peu, hummm... MARQUÉ!

Reply

Marsh Posté le 29-06-2005 à 21:49:42    

sielfried a écrit :

Tu peux faire un truc du genre:

Code :
  1. ($a == 1) ? print 'true' : print 'false';


 
(même si je trouve ça assez moche, je préfère de loin :

Code :
  1. print ($a == 1) ? 'true' : 'false';

)
 
Avec echo, ça marche pas (la deuxième solution marche bien sûr dans les deux cas).


Moi je trouve le if tellement plus lisible. :D

Reply

Marsh Posté le 30-06-2005 à 00:04:20    

Quoique en même temps print ca me prappel le bon vieux basic sur mon amstrad 464+ lol

Reply

Marsh Posté le 30-06-2005 à 00:41:08    

le vote te montre quoi choisir.

Reply

Marsh Posté le 30-06-2005 à 00:45:33    

Tout à fait mais de toute facon c'était déjà choisi depuis quelques années déjà lol Echo pour toujours! Enfin tant que ca existe mais a mon avis ca risque pas de disparaitre...

Reply

Marsh Posté le 30-06-2005 à 09:57:36    

Surtout, avec echo, on peut faire ça :

echo 'pouet', 'truc', $tagada, ' - ', $machin;


Donc balancer un max de truc sans concaténation de string (noter la virgule à la place du point maléfique), et sans devoir foutre une ligne par machin

Reply

Marsh Posté le 30-06-2005 à 10:14:12    

FlorentG a écrit :

Surtout, avec echo, on peut faire ça :

echo 'pouet', 'truc', $tagada, ' - ', $machin;


Donc balancer un max de truc sans concaténation de string (noter la virgule à la place du point maléfique), et sans devoir foutre une ligne par machin


 
Oula oui, c'est vrai que print ne prend qu'un arg. :o


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 30-06-2005 à 11:48:06    

FlorentG a écrit :

Surtout, avec echo, on peut faire ça :

echo 'pouet', 'truc', $tagada, ' - ', $machin;


Donc balancer un max de truc sans concaténation de string (noter la virgule à la place du point maléfique), et sans devoir foutre une ligne par machin


Et c'est quoi l'avantage de la virgule sur le point ? Parce qu'en nombre de caractère, c'est kifkif.

Reply

Marsh Posté le 30-06-2005 à 11:48:33    

The-Shadow a écrit :

Et c'est quoi l'avantage de la virgule sur le point ? Parce qu'en nombre de caractère, c'est kifkif.


pas d'opération de concaténation.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 30-06-2005 à 11:54:28    

FlorentG a écrit :

Surtout, avec echo, on peut faire ça :

echo 'pouet', 'truc', $tagada, ' - ', $machin;


Donc balancer un max de truc sans concaténation de string (noter la virgule à la place du point maléfique), et sans devoir foutre une ligne par machin


 
C'est plus rapide que :
 

echo 'pouet'.'truc'.$tagada.' - '.$machin;

 
?
Ou c'est pareil a des nanosecondes pres sur 1'000'000 requetes?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 30-06-2005 à 11:55:24    

The-Shadow a écrit :

Et c'est quoi l'avantage de la virgule sur le point ? Parce qu'en nombre de caractère, c'est kifkif.


C'est pas une histoire de caractère, c'est une histoire de conacténation. On s'en fout de construire une autre chaîne à partir des arguments, on balance direct -> exécution plus rapide, conso mémoire plus petite

Reply

Marsh Posté le 30-06-2005 à 11:55:49    

esox_ch a écrit :

C'est plus rapide que :
 

echo 'pouet'.'truc'.$tagada.' - '.$machin;

 
?
Ou c'est pareil a des nanosecondes pres sur 1'000'000 requetes?


ça doit pas chier bien loin...quoique avec la manie de php de toujours faire des copies de copies de copies...[:joce]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 30-06-2005 à 12:51:26    

echo :jap:

Reply

Marsh Posté le 30-06-2005 à 14:36:05    

Pour donner une petite idée de la différence de vitesse, on trouve ça sur php.net (fonction echo, commentaires) :
 
When possible, it is faster to pass multiple parameters to echo versus passing one parameter which is many concatinations.  Below is a script which will preform a quick benchmark for you to see:
 

Code :
  1. <?php
  2. function getmicrotime()
  3. {
  4.    list($usec, $sec) = explode(" ",microtime());
  5.    return ((float)$usec + (float)$sec);
  6. }
  7. $args=array();
  8. for($i=0;$i<10000;$i++)
  9.        $args[]="'line to output number $i\n'";
  10. $concatEcho="echo ".implode("\n.",$args).";";
  11. $paramEcho="echo ".implode("\n,",$args).";";
  12. unset($args);
  13. $startParam=getmicrotime();
  14. eval($paramEcho);
  15. $endParam=getmicrotime();
  16. $startConcat=getmicrotime();
  17. eval($concatEcho);
  18. $endConcat=getmicrotime();
  19. $concatTime=$endConcat-$startConcat;
  20. $paramTime=$endParam-$startParam;
  21. print "\nConcats took $concatTime seconds\nParams took $paramTime\n";
  22. ?>


 
The results I got when running the script above were 6.047 seconds for concatinations and  1.781 seconds for parameter passing.  This was just executing the script via command line, having the output dumped to a console.  The performace increase is even greater when using a script on a webpage with output buffering.
 
( http://fr.php.net/echo )


Message édité par sielfried le 30-06-2005 à 14:36:26

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 30-06-2005 à 15:55:39    

bah moi je prefer print ca me fais penser a java mais bon apres l'un ou l'autre fo etre pointilleux pour avoir besoin de l'un plutot que de  l'autre

Reply

Marsh Posté le 30-06-2005 à 16:20:37    

Tiens je serais curieux de savoir combien de langages utilisent print et combiens utilises echo, tout langages confondu bien sur.
 
Sans compter ceux qui utilisent les deux comme php!


Message édité par dwogsi le 30-06-2005 à 16:21:26
Reply

Marsh Posté le 30-06-2005 à 16:33:54    

dwogsi a écrit :

Tiens je serais curieux de savoir combien de langages utilisent print et combiens utilises echo, tout langages confondu bien sur.
 
Sans compter ceux qui utilisent les deux comme php!


 
Mais ça veut rien dire...[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 30-06-2005 à 16:39:37    

Qu'est ce qu'on peut en avoir à foutre?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 30-06-2005 à 16:39:41    

Bah je sais pas juste comme ca....


Message édité par dwogsi le 30-06-2005 à 17:41:33

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 30-06-2005 à 16:40:22    

masklinn a écrit :

Qu'est ce qu'on peut en avoir à foutre?


 
 
Dans ce cas là idem pour le sondage :sarcastic:

Reply

Marsh Posté le 30-06-2005 à 16:40:55    

Multinickname a écrit :

Dans ce cas là idem pour le sondage :sarcastic:


 
Merci!  :jap:


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 01-07-2005 à 12:13:28    

N'oubliez pas par contre que l'optimisation echo vs print c'est vraiment très fin comme optimisation. Y gagner quelque chose suppose que le reste du script est bien conçu et ne fait pas des choses aberrantes au niveau des performances.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 01-07-2005 à 12:22:04    

KrisCool a écrit :

N'oubliez pas par contre que l'optimisation echo vs print c'est vraiment très fin comme optimisation. Y gagner quelque chose suppose que le reste du script est bien conçu et ne fait pas des choses aberrantes au niveau des performances.


Enfin si le site fait 1 000 000 000 000 hits par seconde, la différence sera perceptible  :sol:

Reply

Marsh Posté le 04-07-2005 à 18:11:53    

Tu en as déjà vu ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed