【PHP】これで分かる関数! – 可変関数 –

PHP

更新履歴

更新日更新者更新内容
2021/8/18JJI・サンプルプログラムの実行結果に画面の画像を追加

可変関数

可変関数は、関数を変数で呼び出せる方法です。
関数を別名で呼び出す方法であり、コールバック関数で使用することがあります。

サンプルプログラム1

可変関数を使用したサンプルプログラムを載せておきます。
このサンプルプログラムは関数名を変数に設定し、呼び出すコードです。
あまり使用することはありませんが、一番わかりやすいと思います。

<?php
    // 引数の値への厳密な型付け
    declare(strict_types = 1);

    echo "【PHP】関数<br>\n";
    echo "【引数】可変関数<br>\n";

    $foo = "output_var1";   // 関数名を変数に設定
    $foo("テスト");         // 変数名で関数を呼び出す

    function output_var1(string $str) :void {
        echo '$str:' . $str . ":<br>\n";
    }
?>

実行結果は次の通りです。

・画面

・HTML

【PHP】関数<br>
【引数】可変関数<br>
$str:テスト:<br>

サンプルプログラム2

次のサンプルプログラムはコールバック関数を使用したコードです。

<?php
    // 引数の値への厳密な型付け
    declare(strict_types = 1);

    echo "【PHP】関数<br>\n";
    echo "【引数】可変関数<br>\n";

    // コールバック関数1を関数の引数で呼び出し
    $callback_func = "output_no_name1";
    output_call_noname("関数1", $callback_func);

    // コールバック関数1を関数の引数で呼び出し
    $callback_func = "output_no_name2";
    output_call_noname("関数2", $callback_func);

    // 引数にコールバック関数をもつ関数
    function output_call_noname(string $var, callable $call) : void {
        $call($var);
        echo "<br>\n";
    }

    // コールバック関数1
    function output_no_name1(string $str) :void {
        echo '$str:' . $str . ":<br>\n";
    }

    // コールバック関数2
    function output_no_name2(string $str) :void {
        echo '$str$str:' . $str . $str . ":<br>\n";
    }
?>

実行結果です。

・画面

・HTML

【PHP】関数<br>
【引数】可変関数<br>
$str:関数1:<br>
<br>
$str$str:関数2関数2:<br>
<br>

コメント