Я використовую echoі print_rбагато, і майже ніколи не використовую print.
Я вважаю echo, що це макрос і print_rє псевдонімом var_dump.
Але це не стандартний спосіб пояснення відмінностей.
Я використовую echoі print_rбагато, і майже ніколи не використовую print.
Я вважаю echo, що це макрос і print_rє псевдонімом var_dump.
Але це не стандартний спосіб пояснення відмінностей.
Відповіді:
printі echoє більш-менш однаковими; вони обидві мовні конструкції, які відображають рядки. Відмінності тонкі: printмає значення повернення 1, тому воно може бути використане у виразах, тоді як echoмає voidтип повернення; echoможе приймати кілька параметрів, хоча таке використання є рідкісним; echoтрохи швидше, ніжprint . (Особисто я завжди використовую echo, ніколи print.)
var_dumpвиводить детальний дамп змінної, включаючи її тип та тип будь-яких підпунктів (якщо це масив чи об’єкт). print_rдрукує змінну у більш зручній для людини формі: рядки не цитуються, інформація про тип пропущена, розміри масивів не надаються тощо.
var_dumpЗа print_rмоїм досвідом, зазвичай корисніше, ніж при налагодженні. Це особливо корисно, коли ви точно не знаєте, які значення / типи у ваших змінних. Розглянемо цю програму тестування:
$values = array(0, 0.0, false, '');
var_dump($values);
print_r ($values);
З print_rви не можете сказати, різниця між 0і 0.0, або falseі '':
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
відлуння
Повернене значення немає
напр echo "String 1", "String 2"
друк
Повертається 1, тому його можна використовувати в виразі
напр print "Hello"
або, if ($expr && print "foo")
print_r ()
var_dump ()
print_r(), наприклад, він також друкує тип значеньvar_export ()
print_r()і var_dump()- отриманий результат є дійсним PHP-кодом!Примітки:
printможе бути використаний у виразі, я рекомендую людям уникати цього, оскільки це погано для читабельності коду (і тому, що навряд чи колись стане в нагоді). Правила пріоритету при взаємодії з іншими операторами також можуть бути заплутаними. Через це в мене особисто ніколи не виникає причин використовувати його echo.echoі printє мовними конструкціями, print_r()та var_dump()/ var_export()є регулярними функціями. Вам не потрібно укладати в круглі дужки аргументи echoабо print(і якщо ви використовуєте їх, вони будуть розглядатися як вони були б в вираженні).var_export()повертає дійсний код PHP, що дозволяє прочитати значення пізніше, покладаючись на це для виробничого коду, може полегшити введення вразливості безпеки через необхідність використання eval(). Було б краще використовувати формат на зразок JSON, а не зберігати та читати назад значення. Швидкість буде порівнянною.echo $a, $b;синтаксис, коли ви можете просто зробити echo $a . $b;: якщо $ a або $ b - це дійсно великі рядки, то останній буде використовувати додаткову пам'ять і час, створюючи перед цим окрему з'єднану версію рядків у пам'яті може почати виводити або в браузер.
echo $a; echo $b;теж.
Просто, щоб додати відповідь Джона , echoмає бути єдиним, який ви використовуєте для друку вмісту на сторінку.
printтрохи повільніше. var_dump()і print_r()слід використовувати лише для налагодження.
Також варто згадати те, що, print_r()і var_dump()за замовчуванням лунає, додайте другий аргумент print_r()принаймні, що оцінює істинний, щоб змусити його повернутися, наприклад print_r($array, TRUE).
Різниця між відлунням і поверненням:
echoінґ та return?
print_rдосить багато використовував параметр, що повертався, коли кодував PHP. Однак я схильний писати print_r( $foo, 1 );. Це швидше набирати;) І з цього приводу я не дуже переймаюся читабельністю, оскільки я вважаю, що ім'я також print_rне дуже описове.
var_dump()не підтримує другий аргумент, що дозволяє йому повернути значення, як print_r()це робиться, тому що var_dump()може приймати для виведення декілька аргументів.
echo
Не має типу повернення
print
Мають тип повернення
print_r()
Виводи у форматуванні,
Різниця між луною , печаткою , print_r і var_dump дуже просто.
відлуння
echo - насправді не функція, а мовна конструкція, яка використовується для друку вихідних даних. Це незначно швидше, ніж друк.
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)
Ви також можете використовувати оператор echo з дужками або без них
echo ("Hello World"); // this will print Hello World
друк
Так само, як друк конструкції echo - це також мовна конструкція, а не реальна функція. Різниця між ехо і друком полягає в тому, що друк приймає лише один аргумент, а друк завжди повертається 1. Тоді як ехо не має значення повернення. Тож оператор друку може використовуватися у виразах.
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)
Як і луна , друк можна використовувати з дужками або без них.
print ("Hello World"); // this will print Hello World
print_r
Функція print_r () використовується для друку людської інформації про змінну. Якщо аргументом є масив, функція print_r () друкує його ключі та елементи (те саме для об’єктів).
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
var_dump функція зазвичай використовується для налагодження та друкує інформацію (тип та значення) про змінну / масив / об’єкт.
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" }
Відлуння :
Це оператор, а не функція Немає зворотного значення
Не потрібні дужки
Не друкувати масив
Друк
Це реальна функція
Повернення 1 типу
Обов’язкові дужки
Не друкувати масив
Print_r
Друк у читаному для людини форматі
Рядок не в котируваннях
Не детальна інформація змінного типу типу та всіх
var_dump
Вся інформація демпінгу змінної типу типу елемента та піделемента
printце НЕ реальна функція, це конструкція мови так само , як відлуння. Його також можна використовувати як вислів. echoце НЕ твердження , ні він може бути використаний в одному. printзовсім НЕ вимагає дужок, ні робити або відлуння або друк використовувати круглі дужки , як буде функціонувати. Ви також пропустили одну з головних відмінностей - ехо приймає кілька рядків, щоб відлуння розділяються комами.
echo: echo - це мовна конструкція, де не потрібно використовувати з нею круглі дужки, і вона може приймати будь-яку кількість параметрів і повертати ніщо.
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
print: це мовна конструкція, де не потрібно використовувати круглі дужки, потрібно просто взяти один параметр і повернути
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf: Це функція, яка займає принаймні один стиль рядка та формату та повертає довжину вихідного рядка.
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() використовується для друку масиву у читаному для людини форматі.
print_r () може роздрукувати значення, але також якщо другий параметр прапорця буде істинним істинним - він поверне друкований результат у вигляді рядка і нічого не надсилатиме до стандартного виводу. Про var_dump. Якщо встановлений налагоджувач XDebug, результати виводу будуть форматовані набагато більш читабельним та зрозумілим способом.