{site_name}

{site_name}

🌜 搜索

PHP 8 中引入了一些新的变量特性,包括:

1. 类型声明的属性,可以在定义类的属性时指定属性的类型

php 𝄐 0
php变量名的命名规则,php变量命名规则,php变量名区分大小写吗,PHP变量只能是字符串数据类型,php 变量类型,php 变量作用域
PHP 8 中引入了一些新的变量特性,包括:

1. 类型声明的属性,可以在定义类的属性时指定属性的类型。
2. 更严格的类型检查,当使用未初始化的变量或将值分配给错误类型的变量时会抛出异常。
3. 更好的 null 安全支持,可以使用 ? 运算符来表示一个变量可以是 null。
4. 允许使用 ::class 获取类名。

下面是一些例子:

1. 类型声明的属性

定义一个 Person 类,其中包含一个 string 类型的 $name 属性和一个 int 类型的 $age 属性:


class Person {
public string $name;
public int $age;

public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
}


2. 更严格的类型检查


// 抛出 TypeError 异常
$var = "hello";
$var = 123;

// 抛出 ValueError 异常
function test(int $arg) {
echo $arg;
}
test("hello");


3. 更好的 null 安全支持


// 可以是一个字符串,也可以是 null
$name = "John";
$name = null;

// 使用 ? 运算符表示这个变量可以为 null
function test(?string $str) {
if ($str !== null) {
echo strlen($str);
} else {
echo "null";
}
}
test(null); // 输出 "null"
test("hello"); // 输出 5


4. 使用 ::class 获取类名


class MyClass {}

echo MyClass::class; // 输出 "MyClass"