News & Events
Gán tầm vực cho Phương thức và thuộc tính (P2)
- 19/07/2016
- Posted by: Bùi Đạt
- Category: Video Bài giảng Video học Lập trình web
Phương thức và thuộc tính Static trong lập trình PHP
Mỗi 1 thuộc tính hay phương thức đều được gán tầm vực static thì có thể truy cập được vào ngay cả lúc bạn không khởi tạo class. Bạn cần cung cấp tên class, toán tử phân giải phạm vi cùng với tên phương thức hoặc thuộc tính. “Một trong các giá trị lợi ích chính khi dùng thuộc tính static là chúng sẽ giữ lại những giá trị được lưu trữ trong suốt quãng thời gian mà script tồn tại”.
Để có thể chứng minh điều đó, mình sẽ thêm vào MyClass 1 thuộc tính static mà được gọi là $count cùng với 1 phương thức static được gọi là plusOne(). Sau đó mình sẽ xây dựng 1 vòng lặp do…while để có thể xuất ra được những giá trị tăng dần mà lại nhỏ hơn 10 của $count:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <?php class MyClass { public $prop1 = "I'm a class property!"; public static $count = 0; public function __construct() { echo 'The class "', __CLASS__, '" was initiated!<br />'; } public function __destruct() { echo 'The class "', __CLASS__, '" was destroyed.<br />'; } public function __toString() { echo "Using the toString method: "; return $this->getProperty(); } public function setProperty($newval) { $this->prop1 = $newval; } private function getProperty() { return $this->prop1 . "<br />"; } public static function plusOne() { return "The count is " . ++self::$count . ".<br />"; } } class MyOtherClass extends MyClass { public function __construct() { parent::__construct(); echo "A new constructor in " . __CLASS__ . ".<br />"; } public function newMethod() { echo "From a new method in " . __CLASS__ . ".<br />"; } public function callProtected() { return $this->getProperty(); } } do { // Gọi plusOne mà không khởi tạo MyClass echo MyClass::plusOne(); } while ( MyClass::$count < 10 ); ?> |
Cần chú ý rằng: khi chúng ta truy cập những thuộc tính static, ký tự $ sẽ nằm phía sau toán tử phân giải phạm vi.
Khi chúng ta load đoạn script này trên trình duyệt thì sẽ hiện ra kết quả sau:
1 2 3 4 5 6 7 8 9 10 | The count is 1. The count is 2. The count is 3. The count is 4. The count is 5. The count is 6. The count is 7. The count is 8. The count is 9. The count is 10. |
Trả lời Hủy
Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.