352 of 410 menu

Phương thức __call

Phương thức __call là một phương thức ma thuật trong PHP, được tự động gọi khi có nỗ lực truy cập vào một phương thức không tồn tại hoặc không thể truy cập được của lớp. Tham số đầu tiên của nó nhận tên của phương thức được gọi, tham số thứ hai - một mảng các đối số.

Cú pháp

public function __call(string $name, array $arguments) { // triển khai }

Ví dụ

Hãy tạo một lớp với phương thức __call, phương thức này sẽ chặn tất cả các lời gọi đến các phương thức không tồn tại:

<?php class Test { public function __call($name, $args) { echo "Đã gọi phương thức: " . $name . "\n"; echo "Các đối số: "; print_r($args); } } $test = new Test(); $test->nonExistentMethod('a', 'b', 123); ?>

Kết quả thực thi mã:

Đã gọi phương thức: nonExistentMethod Các đối số: ['a', 'b', 123]

Ví dụ

Triển khai một trình ủy quyền phương thức đơn giản bằng cách sử dụng __call:

<?php class Calculator { public function add($a, $b) { return $a + $b; } } class Math { private $calculator; public function __construct() { $this->calculator = new Calculator(); } public function __call($name, $args) { if (method_exists($this->calculator, $name)) { return call_user_func_array( [$this->calculator, $name], $args ); } throw new Exception("Không tìm thấy phương thức $name"); } } $math = new Math(); echo $math->add(2, 3); ?>

Kết quả thực thi mã:

5

Xem thêm

  • phương thức __callStatic,
    phương thức chặn các lời gọi phương thức tĩnh
  • phương thức __get,
    phương thức chặn truy cập vào các thuộc tính không tồn tại
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối