Trang chủ » Bài 21: Magic methods call và callStatic trong PHP

Bài 21: Magic methods call và callStatic trong PHP

Tác giả:
Đánh giá bài đăng
0
82

Bài trước chúng ta đã được tìm hiểu về magic methods tác động đến thuộc tính rồi, và trong PHP cũng có 2 magic methods hỗ trợ tác động đến phương thức trong đối tượng là __call()__callStatic().

1, __call().

-Phương thức __call() sẽ được gọi khi chúng ta gọi một phương thức không được phép truy cập từ bên ngoài hoặc không tồn tại.

Cú pháp:

public function __call($methodName, $arguments)
{
    //code
}

Trong đó:

  • $methodName là tên phương thức mà các bạn đang tiến hành gọi.
  • $arguments là mảng các thành phần mà các bạn đang truyền vào trong phương thức.

VD:

+Không sử dụng magic methods

name;
    }
}

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()

+Khi sử dụng magic methods

name . ' + ' . $this->age;
    }
}

$connguoi = new ConNguoi();

//Khi không truyền tham số.
$connguoi->getInfo();
//Kết quả: Bạn vừa gọi phương thức: getInfo và có các tham số:

//Khi truyền tham số
$connguoi->getInfo('name', 'age');
//Kết quả: Bạn vừa gọi phương thức: getInfo 
//và có các tham số: Bạn vừa gọi phương thức: getInfo và có các tham số: name-age

2, __callStatic().

-Phương thức __callStatic() sẽ được gọi khi chúng ta gọi một phương thức tĩnh không được phép truy cập từ bên ngoài hoặc không tồn tại.

Cú pháp:

public static function __callStatic($methodName, $arguments)
{
    //code
}

Trong đó:

  • $methodName là tên phương thức tĩnh mà các bạn đang tiến hành gọi.
  • $arguments là mảng các thành phần mà các bạn đang truyền vào trong phương thức.

VD:

+Khi không sử dụng static:

name . ' + ' . $this->age;
    }
}

ConNguoi::getInfo();
//Kết Quả: Call to private method ConNguoi::getInfo()

+Khi sử dụng static.

name . ' + ' . $this->age;
    }
}

ConNguoi::getInfo();
//Kết Quả: Bạn vừa gọi phương thức: getInfo và có các tham số:

/*Khi truyền tham số*/
ConNguoi::getInfo('name', 'age');
//Kết quả: Bạn vừa gọi phương thức: getInfo và có các tham số: name-age

3, Lời kết.

-Như vậy mình đã giới thiệu với mọi người xong về __call()__callStatic() trong PHP rồi. Và đây cũng là một phần được sử dụng khá là nhiều trong core của Laravel.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Facebook Messenger Chat Zalo
Messenger Zalo