Hướng dẫn call class method php - gọi phương thức lớp php

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à

name;
    }
}

$connguoi = new ConNguoi();

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

$connguoi = new ConNguoi();

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

1, __call().

-Phương thức

name;
    }
}

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()
2 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. 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. 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 methodsKhô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 methodsKhi 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

name;
    }
}

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()
3 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.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 mà các bạn đang tiến hành gọi. 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. 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 methodsKhi không sử dụng static:

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

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

+Khi sử dụng magic methodsKhi 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

2, __callStatic().

-Phương thức

name;
    }
}

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()
3 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.

$methodName là tên phương thức tĩnh mà các bạn đang tiến hành gọi.

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

+Khi sử dụng static.

3, Lời kết.bắt được sự kiện khi gọi tới một phương thức không tồn tại và thông báo lỗi hoặc là xư lý một cái gì đó? Câu trả lời là bạn có thể sử dụng hai hàm thuộc danh sách Magic methods đó la

name;
    }
}

$connguoi = new ConNguoi();

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

$connguoi = new ConNguoi();

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

Hướng dẫn call class method php - gọi phương thức lớp php

-Như vậy mình đã giới thiệu với mọi người xong về

name;
    }
}

$connguoi = new ConNguoi();

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

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()
3 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.freetuts.net, không được copy dưới mọi hình thức.

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Bài Viết Mới

Thông thường khi bạn gọi đến một phương thức nào đó mà chưa được định nghĩa trong lớp của đối tượng thì chương trình sẽ bị báo lỗi không tồn tại method. Vậy có câu hỏi đặt ra làm sao để bắt được sự kiện khi gọi tới một phương thức không tồn tại và thông báo lỗi hoặc là xư lý một cái gì đó? Câu trả lời là bạn có thể sử dụng hai hàm thuộc danh sách Magic methods đó la

name;
    }
}

$connguoi = new ConNguoi();

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

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()
3.
: gọi tới phương thức không tồn tại
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

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

class Student
{
    
}

$student = new Student();
$student->get_by_id();

Trong hai methods đều có tác dụng giống nhau nhưng sẽ được sử dụng ở hai trường hợp khác nhau. Bây giờ ta sẽ tìm hiểu method

name;
    }
}

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()
2 trước nhé.

1. Phương thức __call() trong PHP

class Student
{
    public function __call($method, $params)
    {
        echo 'Tên phương thức: ' .$method . '
'; echo 'Tham số truyền vào: ' .$method . '
'; echo '
';
        print_r($params);
    }
}

Phương thức

name;
    }
}

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()
2 sẽ được gọi khi bạn gọi tới một phương thức nào đó không tồn tại trong đối tượng.

  • Ví dụ: gọi tới phương thức không tồn tại
    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
  • Bài viết này được đăng tại [free tuts .net]

Chạy lên bạn sẽ nhận được một thông báo lỗi như hình dưới đây.

$student = new Student();
$student->get_by_id();

Bây giờ mình sẽ viết một phương thức 

name;
    }
}

$connguoi = new ConNguoi();

$connguoi->getName();
//Kết Quả: Call to private method ConNguoi::getName()
2 để bắt sự kiện gọi tới phương thức không tồn tại.

Có hai tham số truyền vào như sau:

$student = new Student();
$student->get_name('thehalfheart');

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
4 là tên của phương thức đang gọi

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-age5 là danh sách các tham số truyền vào của phương thức đó

Quay laị ví dụ, bây giờ mình gọi tới phương thức không tồn tại như sau:

Kết quả như sau:: Tạo một lớp Website và gọi đến phương thức tĩnh không tồn tại

name;
    }
}

$connguoi = new ConNguoi();

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

Để rõ hơn thì mình gọi thêm một phương thức không tồn tại nữa:

name;
    }
}

$connguoi = new ConNguoi();

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

Kết quả:

2. Phương thức __callStatic trong PHP

  • Phương thức
    name;
        }
    }
    
    $connguoi = new ConNguoi();
    
    $connguoi->getName();
    //Kết Quả: Call to private method ConNguoi::getName()
    3 có tác dụng giống như phương thức
    name;
        }
    }
    
    $connguoi = new ConNguoi();
    
    $connguoi->getName();
    //Kết Quả: Call to private method ConNguoi::getName()
    2 và chỉ khác nhau ở chỗ
    name;
        }
    }
    
    $connguoi = new ConNguoi();
    
    $connguoi->getName();
    //Kết Quả: Call to private method ConNguoi::getName()
    3 dùng trong trường hợp bạn gọi đến phương thức tĩnh không tồn tại.
  • Ví dụ: Tạo một lớp Website và gọi đến phương thức tĩnh không tồn tại

Bây giờ giả sử ta gọi tới một phương thức tĩnh không tồn tại như sau:

Và kết quả ta nhận được: