类、属性与方法
定义包含属性和方法的 PHP 类。
类、属性与方法 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。
简介:PHP 类
类是创建对象的蓝图。它定义属性(数据)和方法(行为)。PHP 的 OOP 功能可以让代码更加模块化、可复用且易于维护。
核心概念
PHP 类的关键概念:
- 使用
class ClassName {}进行定义 - 属性存储数据,方法定义行为
- 使用
new ClassName()创建实例 - 使用
->箭头访问成员
定义类
示例:
<?php
class Car {
public string $brand;
public int $year;
public float $price;
public function describe(): string {
return "{$this->year} {$this->brand}";
}
}
$car = new Car();
$car->brand = 'Toyota';
$car->year = 2022;
$car->price = 25000.0;
echo $car->describe(); // 2022 Toyota访问修饰符
继续:
<?php
class BankAccount {
public string $owner;
private float $balance;
protected string $currency;
// public: accessible everywhere
// private: only within this class
// protected: this class + subclasses
}带类型的属性
练习:
<?php
class Product {
public string $name;
public float $price;
public int $stock = 0; // default value
public bool $active = true;
public function inStock(): bool {
return $this->stock > 0;
}
}实例方法
深入了解:
<?php
class Counter {
private int $count = 0;
public function increment(): void { $this->count++; }
public function decrement(): void { $this->count--; }
public function reset(): void { $this->count = 0; }
public function value(): int { return $this->count; }
}
$c = new Counter();
$c->increment();
$c->increment();
echo $c->value(); // 2方法链
高级用法:
<?php
class QueryBuilder {
private string $table = '';
private int $limit = 100;
public function from(string $t): static { $this->table = $t; return $this; }
public function limit(int $n): static { $this->limit = $n; return $this; }
public function build(): string {
return "SELECT * FROM {$this->table} LIMIT {$this->limit}";
}
}
echo (new QueryBuilder())->from('users')->limit(10)->build();类常量
实际应用模式:
<?php
class HttpStatus {
const OK = 200;
const NOT_FOUND = 404;
const ERROR = 500;
public static function message(int $code): string {
return match($code) {
self::OK => 'OK',
self::NOT_FOUND => 'Not Found',
default => 'Error',
};
}
}
echo HttpStatus::message(HttpStatus::NOT_FOUND); // Not Found只读属性(PHP 8.1)
最佳实践:
<?php
class Point {
public function __construct(
public readonly float $x,
public readonly float $y,
) {}
public function distanceTo(Point $other): float {
return sqrt(($this->x - $other->x) ** 2 + ($this->y - $other->y) ** 2);
}
}
$p1 = new Point(0, 0);
$p2 = new Point(3, 4);
echo $p1->distanceTo($p2); // 5实用模式
通过一个适用于 PHP 类的实用模式,将所有内容结合起来。
常见误区
请避免在 PHP 类中犯以下常见错误:
- 使用访问修饰符封装状态
- 对于紧凑的类,优先使用构造函数属性提升
- 使用 const 定义固定值的常量
- 使用方法链(流式接口)构建可读的 API
快速检查
哪种访问修饰符可以使属性只能在类自身内部访问?
回顾:PHP 类
您已经学习了 PHP 类。请记住以下要点:
- 使用访问修饰符封装状态
- 对于紧凑的类,优先使用构造函数属性提升
- 使用 const 定义固定值的常量
- 使用方法链(流式接口)构建可读的 API
常见问题解答
「类、属性与方法」课时是免费的吗?
是的 — 「类、属性与方法」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。
「类、属性与方法」这节课中我会学到什么?
定义包含属性和方法的 PHP 类。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 PHP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「类、属性与方法」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 PHP Academy 课中编写并运行代码吗?
能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。