Giới thiệu
Nếu tên của một biến có dấu ngoặc đơn (có hoặc không có tham số trong đó) ở phía trước, trình phân tích cú pháp PHP sẽ cố gắng tìm một hàm có tên tương ứng với giá trị của biến và thực thi nó. Một hàm như vậy được gọi là hàm đồng biến. Tính năng này hữu ích trong việc triển khai các lệnh gọi lại, bảng chức năng, v.v.
Không thể xây dựng các hàm có thể thay đổi bằng các cấu trúc ngôn ngữ như bao gồm, yêu cầu, tiếng vang, v.v. Tuy nhiên, người ta có thể tìm ra giải pháp thay thế bằng cách sử dụng trình bao bọc hàm.
Ví dụ về hàm biến
Trong ví dụ sau, giá trị của một biến khớp với hàm của tên. Do đó, hàm được gọi bằng cách đặt dấu ngoặc đơn trước biến
Ví dụ
<?php function hello(){ echo "Hello World"; } $var="Hello"; $var(); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
Hello World
Đây là một ví dụ khác về hàm biến có đối số
Ví dụ
<?php function add($x, $y){ echo $x+$y; } $var="add"; $var(10,20); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
30
Trong ví dụ sau, tên của hàm được gọi là do người dùng nhập vào
Ví dụ
<?php function add($x, $y){ echo $x+$y; } function sub($x, $y){ echo $x-$y; } $var=readline("enter name of function: "); $var(10,20); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
enter name of function: add 30
Ví dụ về phương pháp biến
Khái niệm về hàm biến có thể được mở rộng thành phương thức trong một lớp
Ví dụ
<?php class myclass{ function welcome($name){ echo "Welcome $name"; } } $obj=new myclass(); $f="welcome"; $obj->$f("Amar"); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
Welcome Amar
Phương thức tĩnh cũng có thể được gọi bằng kỹ thuật phương thức biến
Ví dụ
<?php class myclass{ static function welcome($name){ echo "Welcome $name"; } } $f="welcome"; myclass::$f("Amar"); ?>
Đầu ra
Thao tác này bây giờ sẽ đưa ra ngoại lệ như sau -
Welcome Amar