Używam echo
i print_r
dużo i prawie nigdy nie używam print
.
Wydaje mi się, że echo
to makro i print_r
to pseudonim var_dump
.
Ale to nie jest standardowy sposób wyjaśniania różnic.
Używam echo
i print_r
dużo i prawie nigdy nie używam print
.
Wydaje mi się, że echo
to makro i print_r
to pseudonim var_dump
.
Ale to nie jest standardowy sposób wyjaśniania różnic.
Odpowiedzi:
print
i echo
są mniej więcej takie same; oba są konstrukcjami językowymi wyświetlającymi ciągi znaków. Różnice są subtelne: print
ma wartość zwracaną 1, więc można jej używać w wyrażeniach, podczas gdy echo
ma void
typ zwracany; echo
może przyjmować wiele parametrów, chociaż takie użycie jest rzadkie; echo
jest nieco szybszy niżprint
. (Osobiście zawsze używam echo
, nigdy print
.)
var_dump
wypisuje szczegółowy zrzut zmiennej, w tym jej typ i typ dowolnych podelementów (jeśli jest to tablica lub obiekt). print_r
wypisuje zmienną w bardziej czytelnej dla człowieka formie: ciągi nie są cytowane, informacje o typie są pomijane, rozmiary tablic nie są podawane itp.
var_dump
print_r
z mojego doświadczenia jest zwykle bardziej przydatna niż podczas debugowania. Jest to szczególnie przydatne, gdy nie wiesz dokładnie, jakie wartości / typy masz w zmiennych. Rozważ ten program testowy:
$values = array(0, 0.0, false, '');
var_dump($values);
print_r ($values);
Ze print_r
nie można odróżnić 0
i 0.0
lub false
i ''
:
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
Echo
Brak wartości zwracanej
na przykład echo "String 1", "String 2"
wydrukować
Zwraca 1
, więc można go użyć w wyrażeniu
na przykład print "Hello"
lub, if ($expr && print "foo")
print_r ()
var_dump ()
print_r()
, na przykład drukuje również typ wartościvar_export ()
print_r()
ivar_dump()
- wynikowy wynik jest prawidłowym kodem PHP!Uwagi:
print
można go użyć w wyrażeniu, zalecam, aby ludzie tego unikali, ponieważ ma to negatywny wpływ na czytelność kodu (i ponieważ jest mało prawdopodobne, aby kiedykolwiek był użyteczny). Zasada pierwszeństwa podczas interakcji z innymi operatorami może być również myląca. Z tego powodu osobiście nigdy nie mam powodu, aby z niego korzystać echo
.echo
i print
są konstrukcje językowe, print_r()
i var_dump()
/ var_export()
regularne funkcje. Nie potrzebujesz nawiasów, aby dołączyć argumenty do echo
lubprint
(a jeśli ich użyjesz, będą traktowane jak w wyrażeniu).var_export()
zwraca prawidłowy kod PHP, umożliwiając późniejsze odczytanie wartości, poleganie na nim w kodzie produkcyjnym może ułatwić wprowadzenie luk w zabezpieczeniach z powodu potrzeby użycia eval()
. Lepiej byłoby użyć formatu takiego jak JSON zamiast do przechowywania i odczytywania wartości. Prędkość będzie porównywalna.echo $a, $b;
składnię, kiedy możesz to zrobić echo $a . $b;
: jeśli $ a lub $ b są naprawdę dużymi łańcuchami, wówczas ta ostatnia zużyje dodatkową pamięć i czas, tworząc oddzielną połączoną wersję łańcuchów w pamięci przed nią może rozpocząć wyświetlanie w przeglądarce.
echo $a; echo $b;
.
Aby dodać do odpowiedzi Johna , echo
powinna być jedyną, której używasz do drukowania treści na stronie.
print
jest nieco wolniejszy. var_dump()
i print_r()
powinien być używany tylko do debugowania.
Warto również wspomnieć, że print_r()
i var_dump()
domyślnie odbije się echem, dodaj drugi argument do print_r()
co najmniej wartości true, aby zamiast tego powrócił, np print_r($array, TRUE)
.
Różnica między echem a zwracaniem to:
echo
ingiem a return
ingiem?
print_r
Podczas kodowania PHP dość często korzystałem ze zwracanego parametru. Jednak miałem tendencję do pisania print_r( $foo, 1 );
. Szybsze jest pisanie;) I o tym nie dbam zbytnio o czytelność, ponieważ nazwa print_r
nie jest zbyt opisowa.
var_dump()
nie obsługuje drugiego argumentu, pozwalając mu zwrócić wartość taką jak print_r()
robi, ponieważ var_dump()
może zaakceptować wiele argumentów do wyjścia.
echo
Brak typu zwrotu
print
Podaj typ zwrotu
print_r()
Wyjścia w formacie sformatowanym,
Różnica między echo , print , print_r i var_dump jest bardzo prosta.
Echo
echo nie jest w rzeczywistości funkcją, ale konstrukcją języka używaną do wydruku. Jest nieznacznie szybszy niż wydruk.
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)
Możesz także użyć instrukcji echo z nawiasami lub bez
echo ("Hello World"); // this will print Hello World
wydrukować
Podobnie jak druk konstrukcji echa jest również konstrukcją języka, a nie rzeczywistą funkcją. Różnice między echem a drukowaniem polegają na tym, że print przyjmuje tylko jeden argument, a print zawsze zwraca 1. Natomiast echo nie ma wartości zwracanej. Tak więc instrukcja print może być używana w wyrażeniach.
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)
Podobnie jak echo , druk może być używany z nawiasami lub bez nich.
print ("Hello World"); // this will print Hello World
print_r
Funkcja print_r () służy do drukowania czytelnych dla człowieka informacji o zmiennej. Jeśli argumentem jest tablica, funkcja print_r () drukuje klucze i elementy (to samo dla obiektów).
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
Funkcja var_dump zwykle używana do debugowania i wyświetla informacje (typ i wartość) o zmiennej / tablicy / obiekcie.
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" }
Echo :
Jest to instrukcja, a nie funkcja Brak wartości zwracanej
Nie wymagane nawiasy
Nie drukuj macierzy
Wydrukować
To prawdziwa funkcja
Typ zwrotu 1
Wymagane nawiasy
Nie drukuj macierzy
Drukuj_r
Drukuj w formacie czytelnym dla człowieka
Ciąg nie jest w cudzysłowie
Brak szczegółowych informacji o typie zmiennej i wszystkich
var_dump
Wszystkie informacje o zrzutu zmiennej, takie jak typ elementu i podelementu
print
to nie prawdziwa funkcja jest konstruktem język jak echo. Może być również użyty jako instrukcja. echo
to nie oświadczenie nie może być używany w jednym. print
nie nie wymaga nawiasów, ani nie ani echa lub wydrukować używać nawiasów jak funkcja będzie. Pominąłeś także jedną z głównych różnic - echo akceptuje wiele ciągów znaków do echa oddzielonych przecinkami.
** Echocan akceptuje wiele wyrażeń, podczas gdy drukowanie nie. Funkcja PHP Print_r () służy do zwracania tablicy w postaci czytelnej dla człowieka. Jest po prostu napisane jako
![Print_r ($your_array)][1]
echo: echo jest konstrukcją językową, w której nie jest wymagane używanie w nim nawiasów i może przyjmować dowolną liczbę parametrów i zwracać nieważność.
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
print: jest to konstrukcja językowa, w której nie trzeba używać nawiasów, wystarczy pobrać jeden parametr i zwrócić
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf: Jest to funkcja, która pobiera co najmniej jeden ciąg znaków i styl formatu oraz zwraca długość ciągu wyjściowego.
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()
służy do drukowania tablicy w formacie czytelnym dla człowieka.
print_r () może wydrukować wartość, ale także jeśli drugi parametr flagi zostanie przekazany i ma wartość PRAWDA - zwróci wydrukowany wynik jako ciąg i nic nie zostanie wysłane na standardowe wyjście. O var_dump. Jeśli zainstalowany jest debuger XDebug, wyniki wyjściowe zostaną sformatowane w znacznie bardziej czytelny i zrozumiały sposób.