Intereting Posts
Практика создания классов БД требует небольшого руководства PHP: отображать записи из базы данных группами по пять? определить, установлен ли флажок php $ _GET Ошибки внутри выходного буфера Почему определенные типы подготовленных запросов с использованием PDO в PHP с MySQL медленны? Ошибка PHPExcel в CodeIgniter «Не удалось загрузить запрошенный класс: iofactory» Как отключить Ubuntu с помощью exec PHP Лучший способ получить тип расширения файла фотографии в PHP Можно ли отменить транзакцию после ее использования с помощью Datamapper / Codeigniter? Проблемы с отправкой в ​​базу данных cURL При использовании PHP включить странный верхний край Неустранимая ошибка: время выполнения 30 секунд превышено в phpmyadmin рекурсивная сумма массива php Как подключиться к 2 базам данных одновременно в PHP Лучший способ справиться с ошибкой 404 с перенаправлением на главную страницу

Разница между php echo и return в терминах jQuery ajax call

У меня возникли проблемы с тем, чтобы функция успеха jQuery Ajax была работоспособной, и мне было указано, что причина в том, что моя функция PHP использовала return $ result, когда я должен использовать echo $ result.

Изменение функции PHP, которую Ajax вызывал из «return $ result» в «echo $ result», устранил проблему, но почему? Есть много объяснений относительно разницы между двумя (возврат и эхо) с точки зрения PHP-скриптов, но как они отличаются при отправке этого значения на вызов Ajax?

Ну, вызов ajax считывает ответ с сервера, и этот ответ должен отображаться как некоторый тип читаемых данных, таких как application/json или text/html .

Чтобы записать эти данные, вам нужно echo его с сервера с помощью PHP.

Оператор return не записывает данные, он просто возвращается на уровне сервера.

Вызов Ajax использует ответ HTTP-запроса. Сценарий PHP не генерирует вывод, сохраняя его, но эхом.

Ajax вызывает данные так же, как и мы, читает их как строку. Это в основном доступ к другой веб-странице и «получение» результата. «Возврат» PHP возвращает значение только на сервере. Вам нужно фактически выводить данные, чтобы при вызове Ajax на странице, на которую он смотрит, фактически записаны данные.

Команда echo выводит данные на Standart Output, это в приложениях веб-браузера, клиент, который запросил данные. В CLI напечатайте данные на консоли. И команда return выйдет из функции со значением, но ничего не печатает.

Если вы хотите общаться между функциями PHP , вам нужно использовать return . Но если вы хотите вывести некоторые данные, вы должны использовать echo .