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!
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.
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.
Mari kita mulakan dengan membandingkan cara tradisional menulis kelas dan pembina dengan cara baharu yang diperkenalkan dalam PHP 8.
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);
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);
Dengan Promosi Harta Pembina, anda mengisytiharkan dan menetapkan sifat dalam parameter pembina. Hasilnya ialah definisi kelas yang lebih ringkas dan boleh dibaca.
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)
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
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
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
Contoh ini menunjukkan cara anda boleh menggunakan Promosi Harta Pembina untuk membuat kelas Produk yang termasuk nilai lalai untuk harta saham.
**Kurang Kod Boilerplate: **Anda tidak perlu menulis kod berulang untuk mengisytiharkan dan memulakan sifat.
Meningkatkan Kebolehbacaan: Takrif kelas lebih ringkas dan lebih mudah difahami sepintas lalu.
Mengurangkan Ralat: Dengan menggabungkan pengisytiharan harta dan permulaan, terdapat lebih sedikit ruang untuk kesilapan.
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!