Panduan Pemula untuk Promosi Hartanah Pembina dalam PHP

WBOY
Lepaskan: 2024-08-25 06:41:42
asal
706 orang telah melayarinya

A Beginner’s Guide to Constructor Property Promotion in PHP

PHP 8 memperkenalkan ciri hebat yang dipanggil Promosi Harta Pembina. Jika anda baru menggunakan PHP atau pengaturcaraan secara umum, ini mungkin kedengaran agak rumit. Tetapi jangan risau! Blog ini akan membimbing anda tentang apa itu, sebab ia berguna dan cara anda boleh menggunakannya dengan banyak contoh pengekodan. Mari mulakan!

Apakah itu Promosi Hartanah Pembina?

Sebelum PHP 8, mencipta kelas dengan sifat dan memulakannya dalam pembina memerlukan sedikit kod berulang. Dengan Promosi Harta Pembina, PHP 8 memudahkan proses ini dengan membenarkan anda mengisytiharkan dan memulakan sifat kelas terus dalam parameter pembina.

Mengapa Anda Perlu Peduli?

Promosi Harta Pembina bukan hanya tentang menyimpan beberapa baris kod—ia mengenai menjadikan kod anda lebih bersih, lebih mudah dibaca dan lebih mudah untuk diselenggara. Ini amat berharga untuk pemula yang mungkin mendapati cara tradisional menulis pembina agak menakutkan.

Cara Tradisional lwn Promosi Harta Pembina

Mari kita mulakan dengan membandingkan cara tradisional menulis kelas dan pembina dengan cara baharu yang diperkenalkan dalam PHP 8.

Sebelum PHP 8 (Cara Tradisional)

class Car {
    public string $make;
    public string $model;
    public int $year;

    public function __construct(string $make, string $model, int $year) {
        $this->make = $make;
        $this->model = $model;
        $this->year = $year;
    }
}

$car = new Car('Toyota', 'Corolla', 2020);
Salin selepas log masuk

Dalam contoh ini, kita perlu mengisytiharkan sifat ($make, $model, dan $year) dan kemudian menetapkannya di dalam pembina. Ia banyak pengulangan, terutamanya apabila berurusan dengan kelas yang mempunyai banyak sifat.

Dengan PHP 8 (Promosi Hartanah Pembina)

class Car {
    public function __construct(
        public string $make,
        public string $model,
        public int $year
    ) {}
}

$car = new Car('Toyota', 'Corolla', 2020);
Salin selepas log masuk

Dengan Promosi Harta Pembina, anda mengisytiharkan dan menetapkan sifat dalam parameter pembina. Hasilnya ialah definisi kelas yang lebih ringkas dan boleh dibaca.

Lagi Contoh Pengekodan

Untuk memahami sepenuhnya kuasa Promosi Harta Pembina, mari terokai lebih banyak contoh dalam senario yang berbeza.

Contoh 1: Menentukan Kelas Buku

class Book {
    public function __construct(
        public string $title,
        public string $author,
        public int $pages,
        public bool $isAvailable = true
    ) {}
}

$book = new Book('1984', 'George Orwell', 328);
echo $book->title; // Output: 1984
echo $book->isAvailable; // Output: 1 (true)
Salin selepas log masuk

Dalam kelas Buku ini, sifat isAvailable mempunyai nilai lalai true. Jika anda tidak menyatakan parameter ini semasa membuat tika kelas, parameter tersebut akan ditetapkan kepada benar secara automatik.

Contoh 2: Membuat Kelas Pesanan

class Order {
    public function __construct(
        public int $orderId,
        public string $product,
        public float $price,
        public string $status = 'pending'
    ) {}
}

$order = new Order(123, 'Laptop', 999.99);
echo $order->status; // Output: pending

$order2 = new Order(124, 'Smartphone', 599.99, 'shipped');
echo $order2->status; // Output: shipped

Salin selepas log masuk

Di sini, kelas Pesanan termasuk sifat status dengan nilai lalai belum selesai. Walau bagaimanapun, anda boleh mengatasi nilai ini dengan memberikan status yang berbeza semasa membuat pesanan.

Contoh 3: Membina Kelas Profil Pengguna

class UserProfile {
    public function __construct(
        public string $username,
        public string $email,
        public int $age,
        private string $password,
        protected string $role = 'user'
    ) {}

    public function getPassword(): string {
        return $this->password;
    }
}

$userProfile = new UserProfile('johndoe', 'john@example.com', 25, 'secret');
echo $userProfile->username; // Output: johndoe
echo $userProfile->getPassword(); // Output: secret
echo $userProfile->role; // Error: Cannot access protected property
Salin selepas log masuk

Dalam kelas UserProfile, sifat kata laluan adalah peribadi, bermakna ia tidak boleh diakses terus di luar kelas. Sebaliknya, anda menggunakan kaedah getPassword() untuk mendapatkannya. Sifat peranan dilindungi, jadi ia hanya boleh diakses dalam kelas itu sendiri atau oleh subkelas.

Contoh 4: Kelas Produk dengan Promosi Hartanah Pembina

class Product {
    public function __construct(
        public string $name,
        public float $price,
        public int $stock = 0
    ) {}
}

$product = new Product('Laptop', 999.99, 10);
echo $product->name; // Output: Laptop
echo $product->stock; // Output: 10

Salin selepas log masuk

Contoh ini menunjukkan cara anda boleh menggunakan Promosi Harta Pembina untuk membuat kelas Produk yang termasuk nilai lalai untuk harta saham.

Faedah Promosi Hartanah Pembina

  1. **Kurang Kod Boilerplate: **Anda tidak perlu menulis kod berulang untuk mengisytiharkan dan memulakan sifat.

  2. Meningkatkan Kebolehbacaan: Takrif kelas lebih ringkas dan lebih mudah difahami sepintas lalu.

  3. Mengurangkan Ralat: Dengan menggabungkan pengisytiharan harta dan permulaan, terdapat lebih sedikit ruang untuk kesilapan.

Kesimpulan

Promosi Harta Pembina dalam PHP 8 ialah ciri hebat yang boleh meningkatkan cara anda menulis kelas dengan ketara. Dengan mengurangkan kod boilerplate, meningkatkan kebolehbacaan dan menjadikan kod anda lebih mudah diselenggara, ini merupakan ciri yang akan dihargai oleh pembangun baharu dan berpengalaman.

Sama ada anda sedang membina projek kecil atau aplikasi besar, Promosi Harta Pembina akan membantu anda menulis kod PHP yang lebih bersih dan cekap. Jadi teruskan, cuba dalam projek anda yang seterusnya dan nikmati faedah ciri hebat ini!

Atas ialah kandungan terperinci Panduan Pemula untuk Promosi Hartanah Pembina dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan