PHP変数関数
はじめに
変数の名前の前に括弧(パラメーターの有無にかかわらず)がある場合、PHPパーサーは、名前が変数の値に対応する関数を見つけて実行しようとします。このような関数は変数関数と呼ばれます。この機能は、コールバック、関数テーブルなどの実装に役立ちます。
変数関数は、include、require、echoなどの言語構造で構築することはできません。ただし、関数ラッパーを使用して回避策を見つけることができます。
変数関数の例
次の例では、変数の値がnameの関数と一致します。したがって、関数は変数の前に括弧を置くことによって呼び出されます
例
<?php function hello(){ echo "Hello World"; } $var="Hello"; $var(); ?>
出力
これにより、次の結果が得られます。 −
Hello World
引数付きの変数関数の別の例を次に示します
例
<?php function add($x, $y){ echo $x+$y; } $var="add"; $var(10,20); ?>
出力
これにより、次の結果が得られます。 −
30
次の例では、呼び出される関数の名前がユーザーによって入力されます
例
<?php function add($x, $y){ echo $x+$y; } function sub($x, $y){ echo $x-$y; } $var=readline("enter name of function: "); $var(10,20); ?>
出力
これにより、次の結果が得られます。 −
enter name of function: add 30
変数メソッドの例
変数関数の概念は、クラスのメソッドに拡張できます
例
<?php class myclass{ function welcome($name){ echo "Welcome $name"; } } $obj=new myclass(); $f="welcome"; $obj->$f("Amar"); ?>
出力
これにより、次の結果が得られます。 −
Welcome Amar
静的メソッドは、可変メソッド手法によって呼び出すこともできます
例
<?php class myclass{ static function welcome($name){ echo "Welcome $name"; } } $f="welcome"; myclass::$f("Amar"); ?>
出力
これにより、次のように例外がスローされます-
Welcome Amar
-
PHPのfilter_input()関数
filter_input()関数は、外部変数の名前を取得し、オプションでフィルタリングします。 構文 filter_input(type, var, filtername, options) パラメータ タイプ −チェックする入力には、INPUT_GET、INPUT_POST、INPUT_COOKIE、INPUT_SERVER、またはINPUT_ENVの5種類があります。 var −変数の名前。 フィルター名 −IDを取得するためのフィルターの名前。 オプション −使用するオプションを指定します。 戻る filter_input()関数は、成功した場合は変数の
-
PHPのextract()関数
extract()関数は、変数を配列から現在のシンボルテーブルにインポートします。正常に抽出された変数の数を返します。 構文 extract(arr, rules, prefix) パラメータ 到着 −指定された配列 ルール −無効な変数名の処理方法を指定します。可能な値は次のとおりです- EXTR_OVERWRITE −デフォルト。衝突すると、既存の変数が上書きされます EXTR_SKIP −衝突時に、既存の変数は上書きされません EXTR_PREFIX_SAME −衝突時に、変数名にプレフィックスが付けられます EXTR_PREFIX_