ホームページ  >  記事  >  バックエンド開発  >  PHPでAPIの出力を書くときにechoを使う理由

PHPでAPIの出力を書くときにechoを使う理由

little bottle
little bottle転載
2019-04-27 17:01:192283ブラウズ

この記事では主に、PHP で API 出力を記述するときに echo を使用する理由について説明します。これには一定の学習価値があります。興味のある友人はそれについて学ぶことができます。

私は PHP API をほとんど書きません。インターフェイスを書き始めたのは最近です。フレームワークでは常に return を使用していますが、API では retrun が失敗します。なぜですか?

ネットユーザーによる回答:

1.return は通常、関数またはメソッドを返すために使用されます。
echo は出力 (つまり、表示) です。
出力しない場合、API は何に使用されますか。

2.return は php 内でのみ使用できます
外部で、他の人のために解析したい場合は、それを出力として理解し、echo

3 を使用します。 echo (json の場合) ヘッダー識別子を追加するのが最善です

<?php
$ret = array(
    &#39;name&#39; => 'fdipzone'
);
header('content-type:application/json;charset=utf8');
echo json_encode($ret);?>

アプリのインターフェイスを作成するときに json データを返すために echo を使用する必要があるのはなぜですか?

1. 作成するときアプリのインターフェイスの場合、 data を返すには echo json_encode() を使用する必要がありますが、PHP 自体は return json_encode() を使用します。

rerurn は、言語の関数またはメソッドによって表される値であり、保存されます。変数と同じようにメモリ内にあります。戻り値は、他のコード ブロックへのポインタまたは参照です。
サーバーがアプリ (クライアント) と対話するとき、同じメモリ システムを読み取ることはできず、テキストを通じてのみ情報を交換できます。
したがって、テキスト (json) をクライアントにエコーする必要があります。
PHP の通常の出力ストリーム メソッドは echo ですが、出力を返したい場合は、それを実現する言語を作成できます。

2. このように理解すると、どんなプログラムであっても必ず出力する必要があるのですが、どうやって出力するのでしょうか? PHP スクリプト、つまり でマークされたスクリプトはすべて PHP によって解析されるため、出力する場合は、echo、die、exit、print_r、
出力に return を使用する必要があります。いいえ、return私 (メインプログラム) がメソッドを呼び出すと、メソッドは結果を私に返します。

3. フレームワーク自体は関数から返された文字列を出力し、その出力は最終的には echo になります。 。ただ、フレームワークは基本的に応答オブジェクトをカプセル化します; echo は出力コンテンツのみを出力し、http リクエストを行うときにのみ取得できます。
そして、php の内部呼び出しには http リクエストはありません

return は関数の戻り値または終了として使用されます このステートメントは返されたデータへのポインタであり、これはデータが保存されているアドレスであり、インターフェイスは実際のデータを返す必要があります。 フロントエンドとバックエンドは異なるメモリシステムを使用しているため、アドレスに基づいて対応するデータを見つけることができず、ブラウザでデータを印刷できる echo print sprinf やその他の関数はすべて http プロトコルに基づいて送信される実データです。

tp フレームワークでは、return キーワードは実際にデータを返すことができる、つまり、使用できることに注意してください。データ キーワードを返すインターフェイスとして使用できますが、ネイティブ php では使用できません。これは tp である必要があります。 フレームの内側が処理されました!

関連チュートリアル: PHP ビデオ チュートリアル

以上がPHPでAPIの出力を書くときにechoを使う理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。