Lớp trừu tượng (abstract class) và interface trong PHP
Trong bài này, chúng ta sẽ tìm hiểu về lớp trừu tượng (abstract class) và interface...
Kết quả sẽ mở trong tab mới, giới hạn trong website này.
Truy cập nhanh
Tìm kiếm gần đây
Trong bài này, chúng ta sẽ tìm hiểu về cách sử dụng access modifier trong PHP. Chưa biết chạy PHP? Xem lại bài Cài đặt môi trường lập trình Web PHP với XAMPP. Access modifier xác định phạm vi truy cập của thuộc tính (properties) và phương thức (methods) trong lớp (class). Có 3 access […]
Trong bài này, chúng ta sẽ tìm hiểu về cách sử dụng access modifier trong PHP. Chưa biết chạy PHP? Xem lại bài Cài đặt môi trường lập trình Web PHP với XAMPP.
Access modifier xác định phạm vi truy cập của thuộc tính (properties) và phương thức (methods) trong lớp (class). Có 3 access modifiers trong PHP là public, protected, private.
– public: truy cập được ở mọi nơi trong chương trình. public là mặc định.
– protected: chỉ truy cập được trong lớp chứa nó và lớp dẫn xuất (derived class).
– private: chỉ truy cập được trong lớp chứa nó.
<?php
class Cat {
public $name;
protected $color;
private $weight;
}
$tom = new Cat();
$tom->name = 'Tom'; // OK
$tom->color = 'grey and white'; // ERROR
$tom->weight = '3.5'; // ERROR
?>
<?php
class Cat {
public $name;
public $color;
public $weight;
// a public function (default)
function set_name($name) {
$this->name = $name;
}
// a protected function
protected function set_color($color) {
$this->color = $color;
}
// a private function
private function set_weight($weight) {
$this->weight = $weight;
}
}
$tom = new Cat();
$tom->set_name('Tome'); // OK
$tom->set_color('grey and white'); // ERROR
$tom->set_weight('3.5'); // ERROR
?>
<?php
class Cat {
public $name;
public $color;
protected $weight;
public function __construct($name, $color, $weight) {
$this->name = $name;
$this->color = $color;
$this->weight = $weight;
}
}
class Kitty extends Cat {
public function message() {
echo "Hello, my name is " . $this->name . ", has " . $this->color . " color";
// using protected $weight in derived class
echo "<br> And my weight is " . $this->weight . " kilograms";
}
}
$kitty = new Kitty("Kitty", "pink and white", "3.5");
$kitty->message();
?>
Thuộc tính $weight là protected nên dùng được trong lớp dẫn xuất. Phương thức protected cũng vậy.