แนะนำตัว
หากชื่อของตัวแปรมีวงเล็บ (มีหรือไม่มีพารามิเตอร์อยู่ข้างหน้า) ตัวแยกวิเคราะห์ 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