Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Gọi constructor cha trong lớp con PHP

Hai trường hợp khi gọi constructor cha:

Trường hợp 1: Lớp con tự định nghĩa constructor

Phải gọi tường minh parent::__construct() bên trong constructor con.

<?php
class Grandpa {
    public function __construct() {
        echo "Tôi ở Tutorials Point\n";
    }
}
class Papa extends Grandpa {
    public function __construct() {
        parent::__construct(); // gọi constructor cha
        echo "Tôi không ở Tutorials Point";
    }
}
$obj = new Papa();
?>

Kết quả

Tôi ở Tutorials Point
Tôi không ở Tutorials Point

Trường hợp 2: Lớp con KHÔNG định nghĩa constructor

Constructor cha được kế thừa tự động (nếu không private).

<?php
class Grandpa {
    public function __construct() {
        echo "Tôi ở Tutorials Point";
    }
}
class Papa extends Grandpa {
    // không có constructor
}
$obj = new Papa(); // tự động gọi Grandpa::__construct()
?>

Kết quả

Tôi ở Tutorials Point