Intereting Posts
Как предотвратить загрузку файлов PHP? И каким образом кто-то может их загрузить? Обновление данных полей базы данных MySQL с помощью HTML-формы и PHP Кто-нибудь знает какую-либо услугу API расписания поездов? Сделать модель, миграцию и контроллер с одним командным и правильным множественным окончанием Как загрузить шаблон из полного пути в движок шаблонов TWIG register_shutdown_function переписать php как писать данные в json? Jqgrid Pass выбирает значения столбцов строк для dataurl jQuery Ajax возвращает всю страницу как перейти на другую страницу после отображения предупреждения JavaScript Объединение различных массивов в один массив в результате запроса Ошибка: новое значение должно быть массивом или экземпляром \ Traversable, заданного класса Entity Google Cloud Storage Подпись Url для медиа PHP Неустранимая ошибка: Загрузчик должен появиться в качестве первой записи в php.ini nginx localhost загружает php-файлы в браузере, а не обслуживает их?

в чем разница между return / echo json_encode в php

может быть, это простой и глупый вопрос.

Как мы знаем, 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 еще, что вам нужно повторить ее самостоятельно