类与对象
class 定义、new 实例化、$this、访问修饰符 public/private/protected
类与对象
PHP 的 OOP 从 PHP 5 开始成熟,现在支持完整的面向对象特性——类、继承、接口、trait、枚举。
学完本章你将: 掌握 class/new、$this、访问修饰符、类型声明。
第一个类
php
<?php
class Student {
// 属性(PHP 7.4+ 可声明类型)
private string $name;
private int $age = 18;
public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
public function getName(): string {
return $this->name;
}
public function introduce(): string {
return "我叫{$this->name},{$this->age}岁";
}
}
$s = new Student("小明", 20);
echo $s->introduce(); // 我叫小明,20岁
访问修饰符
| 修饰符 | 类内部 | 子类 | 外部 |
|---|---|---|---|
| public | ✅ | ✅ | ✅ |
| protected | ✅ | ✅ | ❌ |
| private | ✅ | ❌ | ❌ |
PHP 8 新特性
php
<?php
// 构造函数属性提升(PHP 8.0)—— 简写!
class Point {
public function __construct(
private int $x = 0,
private int $y = 0,
) { }
// 自动声明 + 赋值,不需要手动写属性
}
$p = new Point(3, 5);
echo $p->x; // 错误——private!
// readonly 只读属性(PHP 8.1)—— 初始化后不能改
class Config {
public readonly string $apiKey;
public function __construct(string $key) {
$this->apiKey = $key;
}
}