PHP 面向对象编程基础:类与对象的创建及使用
本文介绍了 PHP 面向对象编程的基础知识,涵盖类的创建、对象实例化、成员访问方式、访问控制修饰符的使用,以及静态属性和方法、类常量的定义与引用,旨在帮助开发者系统掌握 PHP 核心类机制。
结果或目标
在 PHP 开发中,使用类(Class)和对象(Object)是实现代码封装、复用和模块化设计的基础。本节将演示如何定义类、实例化对象、控制属性访问权限,并处理静态资源与常量,从而构建结构清晰的 PHP 应用程序。
准备条件
- 已安装支持 OOP(面向对象)特性的 PHP 环境(建议 PHP 7.0 以上版本)。
- 具备基础的变量赋值与函数调用概念。
- 了解基本的访问修饰符概念(如 public, private)。
真实操作顺序
第1步:创建类并实例化对象
在 PHP 中创建类的语法与 C#、Java 类似。类体内部包含属性(Variable)和方法(Function)。实例化对象后,需要使用箭头操作符 >> 来访问其成员,而非点运算符。
<?php
class People {
// 使用 var 声明属性(兼容旧版,推荐直接声明类型或可见性)
var $name;
// 定义获取名称的方法
public function GetName() {
return $this->name;
}
// 定义设置名称的方法
public function SetName($name) {
$this->name = $name;
}
}
// 实例化对象
$p = new People();
// 使用 -> 访问公共方法
$p->SetName("kym");
// 输出结果
echo $p->GetName();
?>
关键要点:
- 访问操作符:对象成员必须通过
->符号访问。 - 方法定义:使用
function关键字标识,参数传递无需显式声明类型(除非开启严格模式或使用标注)。 - $this 关键字:在类方法内部,
$this指向当前调用该方法的对象实例。
第2步:使用访问修饰符实现封装
为了保护数据不被外部直接篡改,可以使用 private 修饰符将属性设为私有。此时,外部代码无法直接访问该属性,必须通过公开的 getter/setter 方法进行交互。
<?php
class People {
// 私有属性,外部不可直接访问
private $name;
public function GetName() {
return $this->name;
}
public function SetName($name) {
// 可在此处添加验证逻辑
$this->name = $name;
}
}
?>
PHP 支持三种访问修饰符:
public:公开,可在任何地方访问。private:私有,仅限类内部访问。protected:受保护,类内部及子类可访问。
第3步:动态调用对象方法(可变函数)
PHP 允许通过变量存储方法名,从而实现动态调用。这对于插件架构或路由分发非常有用。
<?php
class People {
private $name;
public function GetName() { return $this->name; }
public function SetName($name) { $this->name = $name; }
}
$p = new People();
// 将方法名存入变量
$get_method = "GetName";
$set_method = "SetName";
// 动态调用
$p->$set_method("kym");
// 动态读取
echo $p->$get_method();
?>
第4步:声明和使用静态方法与属性
静态成员(Static Member)属于类本身,而非特定的对象实例。无论创建多少个对象,静态属性在内存中只保存一份副本。使用双冒号 :: 进行访问。
<?php
class DataBase {
// 静态属性
static $connectionString = "http://127.0.0.1";
// 静态方法
public static function CreateConnection() {
echo "Database connected to " . self::$connectionString;
}
}
// 直接通过类名调用静态方法,无需实例化
DataBase::CreateConnection();
// 访问静态属性
echo DataBase::$connectionString;
?>
第5步:在动态方法中访问静态变量
当非静态方法需要访问类的静态成员时,需使用 self:: 关键字。这确保了即使在不同实例间,也能正确引用类级别的共享资源。
<?php
class DataBase {
const AUTHOR = "SystemAdmin";
static $connectionString = "localhost";
public function ShowInfo() {
// 使用 self 访问静态属性和常量
echo "Auth: " . self::AUTHOR . ", DB: " . self::$connectionString;
}
}
$obj = new DataBase();
$obj->ShowInfo();
?>
第6步:定义类常量
类常量使用 const 关键字定义,类似于 C# 中的 const。常量一旦定义便不可修改,且通常用于定义配置信息、固定标识等。
访问常量同样使用 :: 操作符:
<?php
class Config {
const VERSION = "1.0.0";
public static function getVersion() {
return self::VERSION;
}
}
echo Config::VERSION; // 输出 1.0.0
?>
完成判断
- 能够正确写出包含属性和方法的类定义。
- 理解并能区分
->(对象访问)和::(类/静态访问)的使用场景。 - 成功通过私有属性配合公有方法实现数据封装。
- 能熟练使用
self在类内部引用静态成员。
简要总结
掌握类和对象是进阶 PHP 开发的必经之路。通过合理使用访问修饰符、静态成员和常量,可以编写出更健壮、易维护的代码。以上就是 PHP 类和对象用法的详细内容,更多关于 PHP 面向对象编程的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









