может быть, это простой и глупый вопрос.
Как мы знаем, echo
просто распечатайте переменную, а в php-функции return
statnds для возврата что-то к функции invoker.
Я замечаю, что кто-то использует echo json_encode
а другие используют return json_encode
,
Я возвращаю что-то в jquery, и использование echo / return – это нормально .
Но когда я нахожу, что почти все используют echo json_encode
и почему?
Благодарю.
return
не даст никакого ответа в случае использования ajax, где, поскольку echo
даст вам ответ. Если вы используете скрипты на стороне сервера только, вероятно, вам не нужно его эхо. Вместо этого вы можете использовать return.
Посмотрите на этот пример и способ вызова функций
function myFun($value){ return 'This is the value '.$value; } echo myFun(10);//Output This is the value 10 myFun(10);//Will not give you any output function myFun($value){ echo 'This is the value '.$value; } myFun(10);//Output This is the value 10 echo myFun(10);//Output This is the value 10
В случае ajax
$.ajax({ url : 'mypage.php', type : "POST", success : function(res){ alert(res); } });
В mypage.php
echo 'Hello';//This will send Hello to the client which is the response
но
return 'Hello';//Will not send anything.So you wont get any response
В стандартном PHP-коде вывод echo
захватывается веб-сервером и возвращается как часть ответа.
return
просто возвращает значение родительской функции. Родительская функция может делать все, что ему нравится, с возвращенными данными, включая echo
.
рассматривать:
function return_some_text(){ return 'this text is returned'; } function echo_some_text(){ echo 'this text is echoed'; } //does nothing return_some_text(); //'this text is echoed' appears in the response echo_some_text(); //'this text is returned' appears in the response because the return value is echoed. echo return_some_text();
Помните, что возвращаемое значение функции может использоваться любым способом, который считает вызывающий. Это включает echo
если вызывающий считает нужным.
Когда вы увидите return json_encode(...)
это означает, что вызывающая функция собирается что-то делать с данными перед их выходом на сервер.
return
просто вернет переменную без эхо- echo
, где, когда echo
будет эхо-сигнал, когда оно вызывается. Если вы используете AJAX, вам лучше с echo
Это зависит от используемой вами структуры php
если вы используете ajax, и ваша инфраструктура делает стандартную выдачу сама по себе, вы можете использовать return еще, что вам нужно повторить ее самостоятельно