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_