Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ฟังก์ชันตัวแปร (Variable Functions) ใน PHP

บทนำ

ถ้าชื่อตัวแปรมีวงเล็บ (พร้อมพารามิเตอร์หรือไม่มี) นำหน้า PHP parser จะพยายามหาฟังก์ชันที่ชื่อตรงกับค่าของตัวแปรและดำเนินการ ฟังก์ชันแบบนี้เรียกว่า variable function คุณสมบัตินี้มีประโยชน์ในการนำ callback, function tables ฯลฯ ไปใช้งาน

Variable functions ไม่สามารถสร้างได้กับ language constructs เช่น include, require, echo ฯลฯ แต่สามารถหาทางแก้ได้ด้วย function wrappers

ตัวอย่าง Variable function

ในตัวอย่างต่อไปนี้ ค่าของตัวแปรตรงกับชื่อฟังก์ชัน ฟังก์ชันจึงถูกเรียกโดยการวางวงเล็บนำหน้าตัวแปร:

ตัวอย่าง

<?php function hello(){     echo "Hello World"; } $var="Hello"; $var(); ?>

ผลลัพธ์

Hello World

นี่คือตัวอย่างอีกอย่างของ variable function พร้อมอาร์กิวเมนต์:

ตัวอย่าง

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

ตัวอย่าง Variable method

แนวคิด variable function สามารถขยายไปสู่เมธอดในคลาสได้:

ตัวอย่าง

<?php class myclass{     function welcome($name){         echo "Welcome $name";     } } $obj=new myclass(); $f="welcome"; $obj->$f("Amar"); ?>

ผลลัพธ์

Welcome Amar

เมธอดสแตติกก็สามารถเรียกด้วยเทคนิค variable method ได้:

ตัวอย่าง

<?php class myclass{     static function welcome($name){         echo "Welcome $name";     } } $f="welcome"; myclass::$f("Amar"); ?>

ผลลัพธ์

Welcome Amar