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