Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

関数

関数について

関数を定義

関数を定義する(function)

functionを使用して、関数を定義します。

tashizan関数を定義する(test1.php)
<?php
    // 引数との加算関数
    function tashizan( $number ) {

        return $number + 50;
    }

    // tashizan()関数を呼び出します
    echo tashizan( 50 );
?>

上記のスクリプトでは、functionに続けて任意の関数名「tashizan」を指定しています。

このtashizan()関数は、引数として渡される変数$numberに50の加算を行います。よって、関数名の変数に続けて「()かっこ」の中に、引数を記述します。なお、関数の範囲を明示するために「{}(中かっこ)」で、実行するコードを囲います。

関数を実行するためには、関数名に「()かっこ」を付けて呼び出します。もし、引数が必要な場合は、「()かっこ」に記述します。

実行結果
100

また、下記の関数のように、複数の引数を渡すこともできます。その際には、引数を「,(カンマ)」で区切って並べます。

複数の引数を渡すkakezan関数を定義する(test2.php)
<?php
    function kakezan( $number1, $number2 ) {

        return $number1 * $number2;
    }

    // kakezan()関数を呼び出します
    echo kakezan( 10, 20 );
?>
実行結果
200

引数を渡す

関数に引数を渡す

前節のスクリプトのように、関数では引数を使用して値を渡すことができます。引数は「,(カンマ)」で区切ることによって、複数指定することができ、また、その引数に配列を渡すこともできます。

引数に配列を渡すwarizan関数を定義する(test3.php)
<?php
    // 引数に配列を指定します
    function warizan( $number ) {

        return $number[0] / $number[1];
    }

    // warizan()関数を実行します
    echo warizan( array( 3000, 10 ) );
?>
実行結果
300

上記スクリプトでは、「echo warizan( array( 3000, 10 ) );」の「array( 3000, 10 )」の「3000」と「10」はそれぞれ[0]と[1]に格納され、「3000/10」という計算がされています。

関数の参照渡し

引数名に「&(アンパサンド)」を付けると、引数を参照渡しで渡すことができます。引数を参照渡しにすると、参照先の変数の値を変更することができます。

参照渡しで引数を渡す
<?php
    // 引数参照渡しで渡します
    function job( &$syokugyo ) {

        $syokugyo = '会社員';
    }

    $str = '大学生';
    echo "関数実行前の$str : $str<br />n";

    // job()関数を実行します
    job( $str );
    echo "関数実行後の$str : $str";
?>
実行結果
関数実行前の$str : 大学生
関数実行後の$str : 会社員

上記の関数の実行結果を見てみると、変数$strには初期値として「大学生」がセットされています。しかし、job()関数の実行後には、「会社員」に変更されていることがわかります。

デフォルト引数値

PHPで定義される関数では、注)スカラー引数に関して以下のようにC++スタイルのデフォルト値を定義することができます。

引数にデフォルト値を指定する
<?php
    function job( $syokugyo = "大学生" ) {

        return "職業は $syokugyo です。<br />n";
    }

    echo job();
    echo job( "会社員" );
?>
実行結果
職業は 大学生 です。
職業は 会社員 です。

上記のスクリプトでは、「job( $syokugyo = "大学生" )」によって、$syokugyoはデフォルトで「大学生」となっています。以上から「echo job();」の「job()関数」を引数に何もない状態で実行すると必ず「大学生」が出力されます。