Menu
CoddyTech

Thuộc tính

Thuộc phần Lập trình hướng đối tượng trong hành trình PHP của Coddy. Bài học 6 trên 91.

Thuộc tính là các biến thuộc về một lớp. Chúng lưu trữ thông tin về trạng thái của đối tượng. Trong PHP, bạn phải khai báo thuộc tính bên trong lớp bằng một từ khóa chỉ định phạm vi truy cập như public.

Thuộc tính có thể có giá trị mặc định: mỗi đối tượng mới bắt đầu với cùng một giá trị ban đầu, nhưng mỗi đối tượng giữ bản sao riêng, độc lập:

<?php
class Student {
    public $school = "PHP Academy";  // giá trị mặc định
    public $name;
    public $age;
}

Các thuộc tính không có giá trị mặc định sẽ bắt đầu là null cho đến khi bạn đặt giá trị cho chúng.

Bạn có thể đặt giá trị thuộc tính bằng một phương thức và $this:

class Student {
    public $school = "PHP Academy";
    public $name;
    public $age;

    public function setInfo($name, $age) {
        $this->name = $name;    // thiết lập dữ liệu cho instance
        $this->age = $age;      // thiết lập dữ liệu cho instance
    }
}

Tạo các đối tượng học sinh và thiết lập dữ liệu riêng cho từng đối tượng:

$student1 = new Student();
$student2 = new Student();

$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);

Truy cập các thuộc tính:

echo $student1->name . "\n";          // Alice
echo $student2->name . "\n";          // Bob
echo $student1->school . "\n";        // PHP Academy
echo $student2->school . "\n";        // PHP Academy

Đầu ra:

Alice
Bob
PHP Academy
PHP Academy

Điểm khác biệt chính: Các thuộc tính có giá trị mặc định (như $school) bắt đầu với cùng một giá trị ở mọi đối tượng. Các thuộc tính được đặt thông qua phương thức (như $name và $age) là riêng của từng đối tượng.

challenge icon

Thử thách

Dễ

Hoàn thiện lớp Student trong tệp student.php:

  1. Khai báo thuộc tính $school với giá trị mặc định "PHP Academy"
  2. Khai báo các thuộc tính $name và $age (không có giá trị mặc định)
  3. Thêm phương thức setInfo nhận các tham số $name và $age, rồi gán chúng bằng $this

Tệp driver.php sẽ kiểm tra lớp của bạn bằng cách tạo hai học sinh và in ra thông tin của họ.

Tự làm thử

<?php
require_once 'student.php';

$student1 = new Student();
$student2 = new Student();

$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);

echo $student1->name . " is " . $student1->age . " at " . $student1->school . "\n";
echo $student2->name . " is " . $student2->age . " at " . $student2->school . "\n";
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch PHP online