PHP hỗ trợ các lớp và các cấu trúc hướng đối tượng khác.
class exampleClass công tĩnh $ foo; thanh công khai $; chức năng công cộng thường xuyên () echo $ this-> bar; hàm tĩnh công khai staticFunction () echo self :: $ foo; hàm tĩnh công khai AnotherStatFn () self :: staticFunction (); hàm công khai thường xuyênFnUsingStaticVar () echo self :: $ foo; // LƯU Ý: Kể từ PHP 5.3 sử dụng $ this :: $ bar thay vì self :: $ bar được phép exampleClass :: $ foo = "Hello"; $ obj = new exampleClass (); $ obj-> bar = "Thế giới!"; exampleClass :: staticFunction (); / * in Hello * / $ obj-> normalFunction (); / * in Thế giới! * /
Hàm tĩnh chỉ có thể sử dụng biến tĩnh. Các hàm và biến tĩnh được tham chiếu qua tự ::functionName () hoặc tự ::biến Tên. Trong ví dụ hiển thị ở trên, các biến tĩnh được tham chiếu với tên lớp (exampleClass :: $ foo) hoặc, với một tự :: (self :: $ foo) khi được sử dụng trong phương thức tĩnh [được đặt tên staticFactor ()] của lớp.
Các hàm và biến thông thường của một lớp cần một bối cảnh đối tượng được tham chiếu. Chúng không thể tồn tại mà không có bối cảnh đối tượng. Bối cảnh đối tượng được cung cấp bởi $ này. Trong ví dụ trên, $ bar là một biến thông thường và do đó, nó được tham chiếu là $ obj-> bar (trong ngữ cảnh đối tượng có biến obj) hoặc dưới dạng $ this-> bar (một lần nữa trong ngữ cảnh đối tượng trong một phương thức của một đối tượng).
tự không sử dụng trước $ bởi vì tự không bao hàm một biến nhưng lớp tự xây dựng. $ này không tham chiếu một biến cụ thể để nó có trước $.