主に関数パラメータを使用して、関数内の外部データを取得してさらに処理します。同様に、関数の外で処理されたデータにアクセスするために、PHP 関数から値を返します。 PHP では、戻り値の有無にかかわらず関数を定義できます。
PHP の関数は複数のパラメーターを持つことができますが、複数の return ステートメントを持つことはできません。このチュートリアルでは、PHP で関数から複数の値を返す方法を説明します。
関数には、オプションの return
ステートメントを含めることができます。関数内から呼び出された場合、return ステートメントはそれ以降のコードの実行を直ちに停止します。これには、他の return ステートメントも含まれます。以下に例を示します:
上記のコードを実行しても、$y
値に関するステートメントはエコーされないことに注意してください。これは、最初の return ステートメントの後に関数が実行を停止するためです。 list()
を使用して変数値を割り当てる行のコメントを解除すると、$m
と $n
は両方とも NULL
になります。 list()
は配列でのみ機能し、関数は数値のみを返すためです。
return ステートメントはあらゆる種類の値を返すことができることがわかっています。したがって、これを使用して、実際に返したいすべての値を含む配列を返すこともできます。上記の例を次のように書き換えて、複数の値を返すことができます:
リーリーPHP の観点から見ると、依然として単一の値を返しますが、その単一の値は他の複数の値を含むことができる配列です。これは、PHP で複数の値を返す関数をシミュレートする最も簡単な方法の 1 つです。
上記の例では、2 つの値のみを返します。ただし、より多くの値が関係する場合は、返される値の正しい順序を覚えておく必要があるため、少し難しくなる可能性があります。
PHP 7.1 以降では、連想配列で list()
を使用できるようになりました。これは、要素が返される順序は、割り当てられた値に影響を与えないことを意味します。以下に例を示します:
数値インデックスではなくキーに基づいて値が割り当てられるため、変数 $m
と $n
はどちらの場合も同じ値を取得することがわかります。
PHP 7.1 以降では、PHP が構造化構文をサポートするようになったため、list()
を使用する必要さえなくなりました。前の例は次のように書き換えることができます:
PHP 関数から複数の値を返す別の方法は、オブジェクトを返すことです。パブリックメンバー変数を使用して、さまざまなプロパティを持つクラスを定義できます。この手法の欠点の 1 つは、より多くのコードを記述する必要があるため、クラスの複数のインスタンスを保存するためにより多くのメモリを消費することです。利点は、同じ変数セットを複数の場所で使用できることです。
リーリーご覧のとおり、オブジェクトを作成し、そのさまざまなプロパティに値を割り当てるだけで、関数から複数の値を正常に取得できます。
以上が1つのPHP関数から複数の値を返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。