Menu

10/16/21

Cách kiểm tra sự tồn tại của hàm

 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