Kiểm tra sự tồn tại của hàm theo cách thông thường:
-Trong php có hàm mặc định method_exist(), sẽ trả về kết quả true nếu hàm tồn tại:
VD1:
<?php class CartController { function __construct() { $action =getIndex('action','index'); if(method_exists($this,$action)){ $this->$action(); } else{ echo "ham ".$action. " chua xay dung!"; } } function index() { echo "day la index CartController"; } function F1() { echo "ham f1 dc goi"; } } ?>
Kiểm tra sự tồn tại của hàm và phạm vi truy xuất dựa vào hàm ReflectionMethod
class CartController { function __construct() { $action=getIndex('action','index'); if (method_exists($this, $action)) { $reflection = new ReflectionMethod($this, $action); if (!$reflection->isPublic()) { echo "CO, NHUNG PHAI PUBLIC MOI DUOC GOI";exit; } $this->$action(); } else { echo "Chua xay dung ham..."; exit; } } function index() { echo "ham index duoc goi"; } protected function add() { echo "ham add duoc goi"; } }Khi gọi controller và nhận kết quả:http://localhost/mvc/index.php?controller=CartController&action=add
CO, NHUNG PHAI PUBLIC MOI DUOC GOI
No comments:
Post a Comment