当前位置:首页 > PHP

php 实现类

2026-02-13 13:48:53PHP

PHP 实现类的基本语法

在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 MyClass)。

class MyClass {
    // 属性(成员变量)
    public $property;

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

实例化类

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

$obj = new MyClass();
$obj->myMethod(); // 输出: Hello from MyClass!
echo $obj->property; // 访问属性

构造函数与析构函数

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

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

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

访问修饰符

PHP 支持三种访问修饰符:

  • public:属性或方法可在任何地方访问。
  • protected:仅限类内部及子类访问。
  • private:仅限类内部访问。
class MyClass {
    public $publicProp;
    protected $protectedProp;
    private $privateProp;
}

继承

通过 extends 关键字实现继承。子类继承父类的属性和方法(非 private)。

class ParentClass {
    public function parentMethod() {
        echo "Parent method.";
    }
}

class ChildClass extends ParentClass {
    public function childMethod() {
        echo "Child method.";
    }
}

$child = new ChildClass();
$child->parentMethod(); // 输出: Parent method.

方法重写

子类可以重写父类的方法以实现多态。

class ParentClass {
    public function myMethod() {
        echo "Parent method.";
    }
}

class ChildClass extends ParentClass {
    public function myMethod() {
        echo "Child method.";
    }
}

静态属性和方法

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

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

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

echo MyClass::$staticProp; // 输出: Static value
MyClass::staticMethod(); // 输出: Static method.

接口与抽象类

接口(interface)定义方法规范,抽象类(abstract class)允许部分方法实现。

interface MyInterface {
    public function interfaceMethod();
}

abstract class MyAbstractClass {
    abstract public function abstractMethod();
}

class ConcreteClass extends MyAbstractClass implements MyInterface {
    public function abstractMethod() {
        echo "Abstract method implemented.";
    }

    public function interfaceMethod() {
        echo "Interface method implemented.";
    }
}

命名空间

通过 namespace 组织类,避免命名冲突。

namespace MyProject;

class MyClass {
    public function myMethod() {
        echo "Namespaced method.";
    }
}

$obj = new \MyProject\MyClass();

自动加载类

使用 spl_autoload_register 实现类文件的自动加载。

spl_autoload_register(function ($class) {
    include $class . '.php';
});

$obj = new MyClass(); // 自动加载 MyClass.php

魔术方法

PHP 提供特殊魔术方法(如 __get__set),用于自定义对象行为。

php 实现类

class MyClass {
    private $data = [];

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

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

$obj = new MyClass();
$obj->dynamicProp = "Dynamic value"; // 调用 __set
echo $obj->dynamicProp; // 调用 __get

标签: php
分享给朋友:

相关文章

php队列的实现

php队列的实现

PHP队列的实现方式 PHP中实现队列功能可以通过多种方式,根据需求选择适合的方案: 使用数组实现基础队列 PHP数组本身支持队列操作,利用array_push和array_shift函数: $q…

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…

php实现文章

php实现文章

PHP实现文章管理功能 在PHP中实现文章管理功能通常涉及数据库操作、表单处理和页面展示。以下是实现文章管理的基本步骤: 数据库设计 创建articles表,包含字段如id、title、conten…

php 实现md5

php 实现md5

使用 PHP 内置函数实现 MD5 PHP 提供了 md5() 函数,可以直接计算字符串的 MD5 哈希值。该函数接受一个字符串参数,返回 32 字符的十六进制哈希值。 $string = "H…

php实现评论功能

php实现评论功能

数据库设计 创建评论表(示例结构): CREATE TABLE `comments` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id`…

php实现秒杀

php实现秒杀

PHP实现秒杀功能的关键技术 秒杀系统需要解决高并发、数据一致性、系统稳定性等问题。以下是PHP实现秒杀功能的核心技术方案: 数据库优化 使用InnoDB引擎的行级锁和事务特性,确保数据一致性。商品…