Kemas kini PHP8.1: Pengisytiharan jenis Nullable Baharu
PHP8.1 ialah versi yang dinanti-nantikan yang membawakan banyak ciri dan peningkatan baharu. Salah satu ciri baharu yang paling ketara ialah penambahan pengisytiharan jenis Nullable. Pada masa lalu, pengisytiharan pembolehubah PHP boleh dibatalkan secara lalai, tetapi pengisytiharan jenis hanya boleh menentukan jenis tertentu. Sekarang, PHP8.1 membenarkan penggunaan notasi?
untuk mengisytiharkan secara eksplisit bahawa pembolehubah boleh menjadi batal. Ciri baharu ini memberikan kami pengisytiharan jenis yang lebih jelas semasa menulis kod, menjadikan kod lebih dipercayai dan mengurangkan kemungkinan ralat.?
符号来显式声明一个变量可以为null。这个新特性为我们在编写代码时提供了更明确的类型声明,使代码更加可靠,减少了潜在的错误。
让我们来看一个简单的例子,以了解如何使用Nullable类型声明:
function getUserName(?string $name): string { if ($name === null) { return "Anonymous"; } else { return $name; } } echo getUserName(null); // 输出 "Anonymous" echo getUserName("John"); // 输出 "John"
在上面的代码中,我们定义了一个名为getUserName
的函数,它接受一个可为null的string类型参数$name
。在函数的内部,我们进行了一个条件判断,如果$name
为null,则返回字符串"Anonymous",否则返回$name
本身。通过使用Nullable类型声明,我们明确了这个函数可以接受null值的情况,使代码更加清晰和可读。
除了函数参数,我们还可以在属性、返回值和局部变量声明中使用Nullable类型:
class Person { private ?string $name; public function __construct(?string $name) { $this->name = $name; } public function getName(): ?string { return $this->name; } public function setName(?string $name): void { $this->name = $name; } } $person = new Person("John"); echo $person->getName(); // 输出 "John" $person->setName(null); echo $person->getName(); // 输出 null
在上述代码中,我们定义了一个Person
类,其中的$name
属性被声明为可为null的string类型。在构造函数、getName
方法和setName
rrreee
Dalam kod di atas, kami telah menentukan fungsi yang dipanggilgetUserName
yang menerima fungsi yang boleh menjadi jenis rentetan null parameter
$name
. Di dalam fungsi, kami melakukan penghakiman bersyarat Jika
$name
adalah batal, rentetan "Anonymous" dikembalikan, jika tidak
$name
itu sendiri dikembalikan. Dengan menggunakan pengisytiharan jenis Nullable, kami menjelaskan keadaan di mana fungsi ini boleh menerima nilai nol, menjadikan kod lebih jelas dan boleh dibaca.
Selain parameter fungsi, kami juga boleh menggunakan jenis Nullable dalam sifat, nilai pulangan dan pengisytiharan pembolehubah setempat: rrreeeDalam kod di atas, kami mentakrifkan kelas
getName
dan kaedah
setName
, kita semua menggunakan pengisytiharan jenis Nullable untuk menunjukkan bahawa parameter ini dan nilai pulangan boleh menjadi batal. Dengan menggunakan pengisytiharan jenis Nullable, kami boleh menjejak dan mengendalikan situasi di mana nilai nol mungkin wujud dengan lebih baik. Perlu diperhatikan bahawa apabila menggunakan pengisytiharan jenis Nullable, kita perlu ingat untuk mengelak daripada menggunakan null melainkan perlu. Walaupun perisytiharan jenis Nullable menyediakan cara untuk mengendalikan nilai null, terlalu bergantung pada null boleh membawa kepada kod yang kurang boleh dibaca dan diselenggara. Oleh itu, kita harus menggunakan pengisytiharan jenis Nullable apabila kita benar-benar perlu menggunakan null, dan cuba elakkan menggunakan null dalam situasi lain. Ringkasnya, pengisytiharan jenis Nullable baharu dalam PHP8.1 menyediakan kod kami dengan lebih fleksibiliti dan kebolehpercayaan. Dengan menyatakan secara eksplisit bahawa pembolehubah boleh menjadi nol, kami lebih mampu mengendalikan situasi nilai nol yang berpotensi, mengurangkan ralat dan logik yang tidak perlu dalam kod kami. Ini ialah kemas kini yang menarik yang membolehkan kami menulis kod PHP berkualiti tinggi. Saya berharap melalui artikel ini, pembaca akan mendapat pemahaman yang lebih jelas tentang ciri-ciri baharu PHP8.1.
Atas ialah kandungan terperinci Kemas kini PHP8.1: Pengisytiharan jenis Nullable Baharu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!