Je l' utilise echo
et print_r
beaucoup, et presque jamais utiliser print
.
Je pense que echo
c'est une macro et print_r
un alias de var_dump
.
Mais ce n'est pas la manière standard d'expliquer les différences.
Je l' utilise echo
et print_r
beaucoup, et presque jamais utiliser print
.
Je pense que echo
c'est une macro et print_r
un alias de var_dump
.
Mais ce n'est pas la manière standard d'expliquer les différences.
Réponses:
print
et echo
sont plus ou moins les mêmes; ce sont deux constructions de langage qui affichent des chaînes. Les différences sont subtiles: print
a une valeur de retour de 1, elle peut donc être utilisée dans des expressions alors qu'elle echo
a un void
type de retour; echo
peut prendre plusieurs paramètres, bien qu'une telle utilisation soit rare; echo
est légèrement plus rapide queprint
. (Personnellement, j'utilise toujours echo
, jamais print
.)
var_dump
affiche un vidage détaillé d'une variable, y compris son type et le type de tous les sous-éléments (s'il s'agit d'un tableau ou d'un objet). print_r
imprime une variable sous une forme plus lisible par l'homme: les chaînes ne sont pas citées, les informations de type sont omises, les tailles de tableau ne sont pas données, etc.
var_dump
est généralement plus utile que print_r
lors du débogage, selon mon expérience. C'est particulièrement utile lorsque vous ne savez pas exactement quelles valeurs / types vous avez dans vos variables. Considérez ce programme de test:
$values = array(0, 0.0, false, '');
var_dump($values);
print_r ($values);
Avec print_r
vous ne pouvez pas faire la différence entre 0
et 0.0
, ou false
et ''
:
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
écho
Aucune valeur de retour
par exemple echo "String 1", "String 2"
impression
Retour 1
, donc il peut être utilisé dans une expression
par exemple print "Hello"
ou, if ($expr && print "foo")
print_r ()
var_dump ()
print_r()
, par exemple, il imprime également le type de valeursvar_export ()
print_r()
etvar_dump()
- la sortie résultante est un code PHP valide!Remarques:
print
peut être utilisé dans une expression, je recommande aux gens d'éviter de le faire, car il est mauvais pour la lisibilité du code (et parce qu'il est peu probable qu'il soit utile). Les règles de priorité quand il interagit avec d'autres opérateurs peuvent également prêter à confusion. Pour cette raison, je n'ai personnellement jamais de raison de l'utiliser echo
.echo
et print
sont des constructions de langage, print_r()
et var_dump()
/ var_export()
sont des fonctions régulières. Vous n'avez pas besoin de parenthèses pour entourer les arguments de echo
ou print
(et si vous les utilisez, ils seront traités comme ils le feraient dans une expression).var_export()
renvoie un code PHP valide permettant de relire les valeurs plus tard, le fait de s'en remettre au code de production peut faciliter l'introduction de vulnérabilités de sécurité en raison de la nécessité d'utiliser eval()
. Il serait préférable d'utiliser un format comme JSON à la place pour stocker et relire les valeurs. La vitesse sera comparable.echo $a, $b;
syntaxe quand vous pouvez simplement le faire echo $a . $b;
: si $ a ou $ b sont des chaînes vraiment grandes, alors ce dernier utilisera de la mémoire supplémentaire et du temps pour créer une version concaténée séparée des chaînes en mémoire avant peut commencer à sortir soit vers le navigateur.
echo $a; echo $b;
.
Juste pour ajouter à la réponse de John , echo
devrait être le seul que vous utilisez pour imprimer du contenu sur la page.
print
est légèrement plus lent. var_dump()
et print_r()
ne doit être utilisé que pour déboguer.
Il convient également de mentionner que print_r()
et var_dump()
fera écho par défaut, ajoutez print_r()
au moins un deuxième argument qui vaut true pour le faire revenir à la place, par exempleprint_r($array, TRUE)
.
La différence entre l'écho et le retour sont:
echo
ing et return
ing?
print_r
beaucoup utilisé le paramètre de retour pendant que je codais PHP. Cependant, j'avais tendance à écrire print_r( $foo, 1 );
. C'est plus rapide à taper;) Et à ce sujet, je ne me soucie pas beaucoup de la lisibilité car je trouve que le nom print_r
n'est pas très descriptif non plus.
var_dump()
ne prend pas en charge le deuxième argument lui permettant de renvoyer une valeur comme le print_r()
fait, car il var_dump()
peut accepter plusieurs arguments pour la sortie.
echo
Ne pas avoir de type de retour
print
Avoir un type de retour
print_r()
Sorties telles que formatées,
La différence entre echo , print , print_r et var_dump est très simple.
écho
echo n'est en fait pas une fonction mais une construction de langage qui est utilisée pour imprimer la sortie. Il est légèrement plus rapide que l'impression.
echo "Hello World"; // this will print Hello World
echo "Hello ","World"; // Multiple arguments - this will print Hello World
$var_1=55;
echo "$var_1"; // this will print 55
echo "var_1=".$var_1; // this will print var_1=55
echo 45+$var_1; // this will print 100
$var_2="PHP";
echo "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with echo (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with echo (loop or index value required)
Vous pouvez également utiliser l'instruction echo avec ou sans parenthèse
echo ("Hello World"); // this will print Hello World
impression
Tout comme la construction d' écho, l' impression est également une construction de langage et non une fonction réelle. La différence entre echo et print est que print n'accepte qu'un seul argument et print renvoie toujours 1. Alors que echo n'a pas de valeur de retour. Donc, l' instruction print peut être utilisée dans les expressions.
print "Hello World"; // this will print Hello World
print "Hello ","World"; // Multiple arguments - NOT POSSIBLE with print
$var_1=55;
print "$var_1"; // this will print 55
print "var_1=".$var_1; // this will print var_1=55
print 45+$var_1; // this will print 100
$var_2="PHP";
print "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with print (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with print (loop or index value required)
Tout comme l' écho , l' impression peut être utilisée avec ou sans parenthèses.
print ("Hello World"); // this will print Hello World
print_r
La fonction print_r () est utilisée pour imprimer des informations lisibles par l'homme sur une variable. Si l'argument est un tableau, la fonction print_r () affiche ses clés et ses éléments (idem pour les objets).
print_r ("Hello World"); // this will print Hello World
$var_1=55;
print_r ("$var_1"); // this will print 55
print_r ("var_1=".$var_1); // this will print var_1=55
print_r (45+$var_1); // this will print 100
$var_2="PHP";
print_r ("$var_2"); // this will print PHP
$var_3=array(99,98,97) // this will print Array ( [0] => 1 [1] => 2 [2] => 3 )
$var_4=array("P"=>"3","J"=>"4"); // this will print Array ( [P] => 3 [J] => 4 )
var_dump
fonction var_dump habituellement utilisée pour le débogage et affiche les informations (type et valeur) sur une variable / tableau / objet.
var_dump($var_1); // this will print int(5444)
var_dump($var_2); // this will print string(5) "Hello"
var_dump($var_3); // this will print array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
var_dump($var_4); // this will print array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }
Écho :
C'est une instruction et non une fonction Aucune valeur de retour
Non requis les parenthèses
Ne pas imprimer le tableau
Impression
C'est une vraie fonction
Type de retour 1
Obligatoire les parenthèses
Ne pas imprimer le tableau
Print_r
Impression au format lisible par l'homme
Chaîne absente des guillemets
Pas d'informations détaillées de type variable et tout
var_dump
Toutes les informations de vidage de variable comme le type d'élément et le sous-élément
print
n'est pas une fonction réelle, c'est une construction de langage comme echo. Il peut également être utilisé comme une déclaration. echo
n'est pas une déclaration et ne peut pas être utilisée en une seule. print
ne nécessite pas de parenthèses, ni l'écho ni l'impression n'utilisent les parenthèses comme le ferait une fonction. Vous avez également manqué l'une des principales différences - l'écho accepte plusieurs chaînes à l'écho séparées par des virgules.
** Echocan accepte plusieurs expressions alors que l'impression ne le peut pas. La fonction PHP Print_r () est utilisée pour renvoyer un tableau sous une forme lisible par l'homme. Il est simplement écrit
![Print_r ($your_array)][1]
echo: echo est une construction de langage où il n'est pas nécessaire d'utiliser des parenthèses avec lui et il peut prendre n'importe quel nombre de paramètres et retourner void.
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
print: c'est une construction de langage où il n'est pas nécessaire d'utiliser des parenthèses, il suffit de prendre un paramètre et de retourner
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf: C'est une fonction qui prend au moins une chaîne et un style de format et renvoie la longueur de la chaîne de sortie.
int printf($string,$s);
$s= "Shailesh";
$i= printf("Hello %s how are you?",$s);
echo $i;
Output : Hello Shailesh how are you?
27
echo returns void so its execution is faster than print and printf
print_r()
est utilisé pour imprimer la matrice dans un format lisible par l'homme.
print_r () peut imprimer la valeur mais aussi si le second paramètre indicateur est passé et est VRAI - il retournera le résultat imprimé sous forme de chaîne et rien ne sera envoyé à la sortie standard. À propos de var_dump. Si le débogueur XDebug est installé, les résultats de sortie seront formatés de manière beaucoup plus lisible et compréhensible.