Tafsiran dan contoh ciri baharu PHP8.0
Fungsi parameter dinamakan baharuApakah yang dinamakan parameter?Ia ialah parameter bernama Apabila memanggil fungsi, anda boleh menentukan nama parameter Selepas menentukan nama parameter, susunan parameter boleh dihantar mengikut urutan tanpa memasang parameter fungsi asal.
Contoh:<?php /** * 计算余额方法 * @param $amount 账户金额 * @param $payment 支出金额 * @return $balance = $amount-$payment 余额 */ function balance($amount, $payment) { return $amount - $payment; } //传统方式调用 balance(100, 20); //php8 使用命名参数调用 balance(amount: 100, payment: 20); //也可以换个顺序,这样来 balance(payment: 20, amount: 100);Salin selepas log masuk
Fungsi anotasiApakah anotasi? Pergi terus ke kod, dan akhirnya terangkanContoh:Ringkasan pemahaman peribadi tentang fungsi anotasi, menggunakan anotasi boleh mentakrifkan kelas kepada penyahgandingan rendah, tinggi- kelas Metadata kohesi. Ia boleh diperkenalkan secara fleksibel melalui anotasi apabila digunakan, dan tujuan panggilan boleh dicapai apabila mencerminkan kejadian kelas beranotasi.#[Attribute]class PrintSomeThing{ public function __construct($str = '') { echo sprintf("打印字符串 %s \n", $str); }}#[PrintSomeThing("hello world")]class AnotherThing{}// 使用反射读取住解$reflectionClass = new ReflectionClass(AnotherThing::class);$attributes = $reflectionClass->getAttributes();foreach($attributes as $attribute) { $attribute->newInstance(); //获取注解实例的时候,会输出 ‘打印字符串 Hello world’}Salin selepas log masuk**Kelas beranotasi hanya akan dipanggil apabila ia dibuat seketika
Promosi hartanah pembinaApa adakah ini bermakna? Anda boleh mengisytiharkan skop pengubah suai atribut kelas dalam pembinaContoh:
Ia menjimatkan jumlah kod dan tidak perlu mengisytiharkan atribut kelas secara berasingan.<?php // php8之前 class User { protected string $name; protected int $age; public function __construct(string $name, int $age) { $this->name = $name; $this->age = $age; } } //php8写法, class User { public function __construct( protected string $name, protected int $age ) {} }Salin selepas log masuk
Jenis kesatuanboleh digunakan dalam senario di mana jenis parameter tidak pasti.Contoh:function printSomeThing(string|int $value) { var_dump($value); }Salin selepas log masuk
Ungkapan padananserupa dengan menukar tunai, tetapi ia adalah padanan === yang ketat
Contoh:<?php$key = 'b';$str = match($key) { 'a' => 'this a', 'c' => 'this c', 0 => 'this 0', 'b' => 'last b',};echo $str;//输出 last bSalin selepas log masuk
Pengendali Nullsafe baharuPembelajaran yang disyorkan: "<?php class User { public function __construct(private string $name) { //啥也不干 } public function getName() { return $this->name; } } //不实例 User 类,设置为null $user = null; echo $user->getName();//php8之前调用,报错 echo $user?->getName();//php8调用,不报错,返回空Salin selepas log masukMemudahkan penghakiman batal
Tutorial Video PHP"
Atas ialah kandungan terperinci Terangkan ciri baharu PHP8 dengan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!