Đây là một ví dụ về những gì xảy ra khi một phương thức của một lớp được gọi trong một cách sai lầm. Bạn sẽ thấy một số cảnh báo khi thực thi mã này nhưng nó sẽ hoạt động và sẽ in: "Tôi là A: in ấn B tài sản". (Đã thực hiện trong php5.6)
class A {
public function aMethod() {
echo "I'm A: ";
echo "printing " . $this->property;
}
}
class B {
public $property = "B property";
public function bMethod() {
A::aMethod();
}
}
$b = new B();
$b->bMethod();
Nó đường nối biến $ này, được sử dụng trong phương thức được gọi là phương pháp tĩnh, trỏ đến trường hợp của "người gọi". Trong ví dụ trên có được $ this-> tài sản được sử dụng trong lớp Một mà điểm đến một tài sản của B.
EDIT:
The pseudo-variable $this is available when a method is called from within an object context. $this is a reference to the calling object (usually the object to which the method belongs, but possibly another object, if the method is called statically from the context of a secondary object). PHP > The Basics
Nguồn
2017-05-17 08:28:12
đúng, tôi sắp đăng câu trả lời này. –
Bạn cũng nên nhớ rằng phương thức getomthin() cũng phải tĩnh - Bạn không thể gọi không tĩnh trong một phương thức tĩnh. – thorinkor
@ Sarfraz, không nên là «static ::' thay vì 'self ::'? – Pacerier