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

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

  1. 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()関数は、成功した場合は変数の

  2. PHPのextract()関数

    extract()関数は、変数を配列から現​​在のシンボルテーブルにインポートします。正常に抽出された変数の数を返します。 構文 extract(arr, rules, prefix) パラメータ 到着 −指定された配列 ルール −無効な変数名の処理方法を指定します。可能な値は次のとおりです- EXTR_OVERWRITE −デフォルト。衝突すると、既存の変数が上書きされます EXTR_SKIP −衝突時に、既存の変数は上書きされません EXTR_PREFIX_SAME −衝突時に、変数名にプレフィックスが付けられます EXTR_PREFIX_