🚀 𝗣𝗛𝗣 𝟴.𝟰 𝗶𝘀 𝗛𝗲𝗿𝗲:今晚有空!

PHP 的最新版本 **PHP 8.4** 包含许多可简化代码、提高性能并符合现代开发实践的功能。下面简要介绍一下这些亮点以及示例:

🔹 属性钩子

消除样板 getter 和 setter!直接在类中自定义属性访问行为。

class User
{
    private string $hashedPassword;

    public string $password
    {
        get => '***'; // Masked password for display
        set (string $plainPassword) {
            $this->hashedPassword = password_hash($plainPassword, PASSWORD_DEFAULT); // Hash the password
        }
    }

    public function verifyPassword(string $plainPassword): bool
    {
        return password_verify($plainPassword, $this->hashedPassword);
    }
}

// Example usage
$user = new User();

// Set the password
$user->password = 'secure123';

// Access the password (masked)
echo $user->password; // Output: ***

// Verify the password
var_dump($user->verifyPassword('secure123')); // bool(true)
var_dump($user->verifyPassword('wrongpassword')); // bool(false)

🔹 不对称可见性

使用属性的不同可见性级别来控制读写访问。

class BankAccount {
    public function __construct(
        public readonly float $balance = 0.0
    ) {}

    private function setBalance(float $amount): void {
        // Business logic for updating the balance
    }
}

$account = new BankAccount(100.0);
echo $account->balance; // Public for reading
// $account->balance = 200.0; // Error: Cannot modify (private for writing)

🔹 新的数组查找函数

使用新的实用函数(例如“array_find”和“array_all”)更智能地处理数组。

$users = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
];

$user = array_find($users, fn($user) => $user['name'] === 'Bob');
print_r($user); // Output: ['id' => 2, 'name' => 'Bob']

$isAllAdults = array_all($users, fn($user) => $user['age'] >= 18);

🔹 无需额外括号即可实例化类

无缝链接方法或访问属性,无需多余的括号。

class Task {
    public function status(): string {
        return 'Completed';
    }
}

echo (new Task)->status(); // Output: Completed

🔹 HTML5 DOM 解析器

DOM 解析器现在完全支持 HTML5,提高了网络兼容性。

$dom = new DOMDocument();
$dom->loadHTML('
Hello
'); echo $dom->saveHTML(); // Parses HTML5 content properly

🔹 弃用

领先于重大变化:

  • 隐式可空类型已被弃用。
  • 通过 GET/POST 进行会话的使用已被弃用。
  • 💡 **为什么这很重要:**

    PHP 8.4 使开发人员能够编写更干净、更高效、更现代的代码。无论您是构建 Web 应用程序、API 还是其他任何内容,这些功能都能让开发变得更加愉快。

    👉 哪个功能最让您兴奋? 让我们在评论中讨论!