PHP 8.4 ada di sini, membawakan beberapa ciri menarik yang memudahkan pengekodan dan meningkatkan prestasi. Artikel ini menerangkan kemas kini yang paling penting dengan contoh mudah, memudahkan pembangun semua peringkat kemahiran memahami dan menggunakan ciri ini.
Kait harta membolehkan anda menyesuaikan perkara yang berlaku apabila anda mendapat atau menetapkan harta. Ini menghilangkan keperluan untuk kaedah getter dan setter yang berasingan.
class User { private string $firstName; private string $lastName; public function __construct(string $firstName, string $lastName) { $this->firstName = $firstName; $this->lastName = $lastName; } // This property combines first and last name public string $fullName { get => $this->firstName . ' ' . $this->lastName; set => [$this->firstName, $this->lastName] = explode(' ', $value, 2); } } $user = new User('John', 'Doe'); echo $user->fullName; // Output: John Doe $user->fullName = 'Jane Smith'; // Updates first and last names echo $user->fullName; // Output: Jane Smith
Mengapa ia berguna:
Cangkuk hartanah menjadikan kod anda lebih bersih dan mengurangkan plat dandang.
Anda kini boleh menetapkan tahap keterlihatan yang berbeza untuk membaca dan menulis harta. Contohnya, harta boleh dibaca oleh semua orang tetapi hanya boleh ditulis oleh kelas itu sendiri.
class BankAccount { public private(set) float $balance; // Public read, private write public function __construct(float $initialBalance) { $this->balance = $initialBalance; // Allowed here } public function deposit(float $amount): void { $this->balance += $amount; // Allowed here } } $account = new BankAccount(100.0); echo $account->balance; // Output: 100 $account->deposit(50.0); // Adds 50 to the balance echo $account->balance; // Output: 150 // The following line will cause an error: // $account->balance = 200.0;
Mengapa ia berguna:
Ciri ini memudahkan untuk mengawal cara sesuatu harta itu diakses dan dikemas kini.
PHP 8.4 menambah fungsi tatasusunan baharu yang menyelamatkan anda daripada menulis gelung manual.
$numbers = [1, 2, 3, 4, 5]; // Find the first even number $firstEven = array_find($numbers, fn($n) => $n % 2 === 0); echo $firstEven; // Output: 2 // Check if any number is greater than 4 $hasBigNumber = array_any($numbers, fn($n) => $n > 4); var_dump($hasBigNumber); // Output: bool(true) // Check if all numbers are positive $allPositive = array_all($numbers, fn($n) => $n > 0); var_dump($allPositive); // Output: bool(true)
Mengapa ia berguna:
Fungsi ini menjadikan operasi tatasusunan lebih pantas untuk ditulis dan lebih mudah difahami.
Kini anda boleh mencipta objek dan memanggil kaedah padanya serta-merta, tanpa membungkus instantiasi dalam kurungan.
class Logger { public function log(string $message): void { echo $message; } } // Create an object and call a method in one step new Logger()->log('Logging a message'); // Output: Logging a message
Mengapa ia berguna:
Ia mengurangkan sintaks yang tidak diperlukan, menjadikan kod anda lebih bersih.
PHP 8.4 memerlukan anda mengisytiharkan secara eksplisit apabila parameter boleh menjadi batal. Ini menjadikan kod lebih mudah difahami dan diselenggara.
// PHP 8.4 (Recommended): function process(?string $data = null) { echo $data ?? 'No data provided'; }
Mengapa ia berguna:
Pengisytiharan eksplisit menghalang kekeliruan dan mengurangkan potensi pepijat.
Objek malas membolehkan anda menangguhkan membuat objek sehingga ia benar-benar digunakan, yang boleh menjimatkan sumber.
class ExpensiveResource { public function __construct() { // Simulate a time-consuming setup sleep(2); } public function doWork(): void { echo 'Working...'; } } // Use a lazy object to delay creation $initializer = fn() => new ExpensiveResource(); $reflector = new ReflectionClass(ExpensiveResource::class); $resource = $reflector->newLazyProxy($initializer); // The object isn't created yet $resource->doWork(); // Now the object is created and "Working..." is printed
Mengapa ia berguna:
Ini amat membantu apabila berurusan dengan operasi yang mahal atau sistem yang besar.
PHP 8.4 memperkenalkan beberapa ciri yang menjadikan pengekodan lebih mudah dan lebih berkuasa:
Kemas kini ini akan menjadikan PHP lebih menyeronokkan untuk digunakan, sama ada anda seorang pemula atau pembangun berpengalaman. Mula meneroka PHP 8.4 hari ini!
Atas ialah kandungan terperinci Perkara baharu dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!