0Pricing
PHP Academy · 课时

类、属性与方法

定义包含属性和方法的 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 类、属性与方法
  2. 构造方法与析构方法
  3. 静态属性与方法
  4. 魔术方法概览
← 返回 PHP Academy