PHP 變數函式


介紹

如果變數名前面帶有括號(可以包含引數),PHP 解析器會嘗試查詢名稱與變數值對應的函式並執行它。這種函式稱為變數函式。此功能對於實現回撥、函式表等很有用。

變數函式不能與 include、require、echo 等語言結構一起構建。不過,可以使用函式包裝器找到解決方法。

變數函式示例

在下面的示例中,變數的值與函式名匹配。因此,透過在變數前面加上括號來呼叫該函式。

示例

 線上演示

<?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

更新於:2020年9月18日

9K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.