PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPの関数から2つの値を返す方法

PHPの関数から複数の値を返すには

PHPでは、関数から2つの変数を直接返すことはできません。そのため、複数の値を返したい場合は、配列(array)やリストなどのデータ構造に値を格納して返すのが一般的な方法です。

ここでは、引数として渡した数値の約数をすべて求め、それらを配列に格納して返す関数を例に、その実装方法を解説します。

コード例

function factors( $n ) {
    // 空の配列を宣言
    $fact = array();
    // ループで処理
    for ( $i = 1; $i < $n; $i++) {
        // i が n の約数かどうかを判定し、配列に追加
        if( $n % $i == 0 )
        array_push( $fact, $i );
    }
    // 配列を返す
    return $fact;
}
// 変数を宣言して初期化
$num = 12;
// 関数を呼び出す
$nFactors = factors($num);
// 結果を表示
echo 'Factors of ' . $num . ' are: <br>';
foreach( $nFactors as $x ) {
    echo $x . "<br>";
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

Factors of 12 are:
1
2
3
4
6

このように、関数factors()は12の約数である「1・2・3・4・6」を配列として返し、foreachループでそれぞれの値を画面に出力しています。

補足:list()で個別の変数として受け取る

返された配列は、list()言語構造を使うことで、個別の変数に展開して受け取ることもできます。これにより、実質的に「複数の値を返す」動作を実現できます。

list($first, $second) = someFunction();

また、連想配列を使えば、キー名を付けて値を返せるため、より可読性の高いコードになります。用途に応じて使い分けるとよいでしょう。

  1. Python入門:関数から複数の値を返す方法

    Pythonでは、関数から複数の値を返すことができます。戻り値として辞書・タプル・リストなどのデータ型を利用すれば、複数の値をまとめてメインプログラムに渡せます。さらに、値をカンマで区切って直接返す方法もあります。 Pythonで関数から複数の値を返すには Pythonの関数から複数の値を返す主な方法は、以下の4つです。 複数の値を含むリストを返す 複数の値を含むタプルを返す 複数のキーと値を持つ辞書を返す 値をカンマで区切って返す これらのデータ型はいずれも複数の値を格納できます。中でも、カンマ区切りで返す方法が最もシンプルで意図が伝わりやすいでしょう。この方法なら「複数の独立した

  2. JavaScriptのコンストラクターから値を返す方法

    JavaScriptのコンストラクターから値を返すには?JavaScriptでは、コンストラクター関数内で明示的にオブジェクトをreturnすると、new演算子によって生成されるインスタンス(this)の代わりに、そのオブジェクトが結果として返されます。この仕組みを利用すると、コンストラクターの戻り値を柔軟に制御できます。以下は、JavaScriptのコンストラクターから値を返すコード例です。サンプルコード<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-