当前位置:首页 > PHP

PHP类实现

2026-02-14 21:28:20PHP

PHP 类实现的基本结构

在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 MyClass)。类内部可以包含属性(变量)和方法(函数)。

class MyClass {
    // 属性
    public $property;

    // 方法
    public function myMethod() {
        echo "Hello from MyClass!";
    }
}

实例化类

通过 new 关键字创建类的实例。实例化后,可以访问类的属性和方法。

$obj = new MyClass();
$obj->myMethod(); // 输出: Hello from MyClass!

构造函数和析构函数

构造函数 __construct() 在实例化时自动调用,用于初始化对象。析构函数 __destruct() 在对象销毁时调用。

class MyClass {
    public function __construct() {
        echo "Object created.";
    }

    public function __destruct() {
        echo "Object destroyed.";
    }
}

$obj = new MyClass(); // 输出: Object created.
unset($obj); // 输出: Object destroyed.

属性和方法的可见性

PHP 支持三种可见性修饰符:

PHP类实现

  • public:可从任何地方访问。
  • protected:仅限类和子类访问。
  • private:仅限类内部访问。
class MyClass {
    public $publicProp = "Public";
    protected $protectedProp = "Protected";
    private $privateProp = "Private";

    public function showProps() {
        echo $this->publicProp;    // 可访问
        echo $this->protectedProp; // 可访问
        echo $this->privateProp;   // 可访问
    }
}

$obj = new MyClass();
echo $obj->publicProp;    // 可访问
// echo $obj->protectedProp; // 报错
// echo $obj->privateProp;   // 报错

继承

通过 extends 关键字实现继承。子类可以访问父类的 publicprotected 属性和方法。

class ParentClass {
    public $parentProp = "Parent Property";

    public function parentMethod() {
        echo "Parent Method";
    }
}

class ChildClass extends ParentClass {
    public function childMethod() {
        echo $this->parentProp; // 访问父类属性
        $this->parentMethod();  // 调用父类方法
    }
}

$child = new ChildClass();
$child->childMethod();

静态属性和方法

通过 static 关键字定义静态成员,无需实例化即可通过类名访问。

class MyClass {
    public static $staticProp = "Static Property";

    public static function staticMethod() {
        echo "Static Method";
    }
}

echo MyClass::$staticProp;    // 输出: Static Property
MyClass::staticMethod();      // 输出: Static Method

接口和抽象类

接口通过 interface 定义,类通过 implements 实现接口。抽象类通过 abstract 定义,可以包含抽象方法和具体方法。

PHP类实现

interface MyInterface {
    public function interfaceMethod();
}

abstract class MyAbstractClass {
    abstract public function abstractMethod();

    public function concreteMethod() {
        echo "Concrete Method";
    }
}

class MyClass extends MyAbstractClass implements MyInterface {
    public function abstractMethod() {
        echo "Abstract Method";
    }

    public function interfaceMethod() {
        echo "Interface Method";
    }
}

$obj = new MyClass();
$obj->abstractMethod();    // 输出: Abstract Method
$obj->interfaceMethod();   // 输出: Interface Method
$obj->concreteMethod();    // 输出: Concrete Method

魔术方法

PHP 提供了一系列魔术方法,以双下划线开头,用于实现特殊功能(如属性访问、方法调用等)。

class MyClass {
    private $data = [];

    public function __set($name, $value) {
        $this->data[$name] = $value;
    }

    public function __get($name) {
        return $this->data[$name] ?? null;
    }

    public function __call($name, $args) {
        echo "Calling undefined method $name";
    }
}

$obj = new MyClass();
$obj->dynamicProp = "Value"; // 调用 __set
echo $obj->dynamicProp;      // 调用 __get
$obj->undefinedMethod();     // 调用 __call

命名空间

通过 namespace 关键字定义命名空间,避免类名冲突。

namespace MyNamespace;

class MyClass {
    public function show() {
        echo "Class in MyNamespace";
    }
}

$obj = new \MyNamespace\MyClass();
$obj->show();

Trait

通过 trait 关键字定义代码复用单元,类通过 use 关键字引入 Trait。

trait MyTrait {
    public function traitMethod() {
        echo "Trait Method";
    }
}

class MyClass {
    use MyTrait;
}

$obj = new MyClass();
$obj->traitMethod(); // 输出: Trait Method

标签: PHP
分享给朋友:

相关文章

PHP http长连接的实现

PHP http长连接的实现

HTTP 长连接基础概念 HTTP长连接(Keep-Alive)允许在单个TCP连接上发送和接收多个HTTP请求/响应,减少重复建立和断开连接的开销。HTTP/1.1默认启用长连接,而HTTP/1.0…

PHP实现会员管理

PHP实现会员管理

PHP实现会员管理的方法 数据库设计 创建会员表(members)包含字段:id(主键)、username、password(建议加密存储)、email、register_time、last_logi…

PHP实现图文聊天

PHP实现图文聊天

PHP实现图文聊天的方法 数据库设计 创建数据库表存储聊天消息,包含字段如消息ID、发送者ID、接收者ID、消息内容、消息类型(文本/图片)、发送时间等。使用MySQL或其他数据库管理系统。 CR…

PHP审核流程实现

PHP审核流程实现

PHP审核流程实现方法 审核流程的实现通常涉及状态管理、权限控制和操作记录。以下是几种常见的实现方式: 状态机模式 定义审核状态常量,使用状态机控制流程流转: const STATUS_PENDI…

拼团 PHP实现

拼团 PHP实现

拼团功能 PHP 实现 拼团是一种常见的电商营销模式,允许用户邀请好友一起购买商品,达到指定人数后享受优惠价格。以下是使用 PHP 实现拼团功能的关键步骤和代码示例。 数据库设计 拼团功能通常需要…

PHP接口防重推荐实现

PHP接口防重推荐实现

防重实现方法 使用唯一请求标识符(UUID或业务ID)作为防重依据,客户端每次请求生成唯一标识,服务端校验该标识是否已处理过。适合短时间内的重复请求拦截。 // 客户端生成唯一标识 $request…