PHP 类和对象

2025 年 5 月 6 日 | 阅读 8 分钟

在学习 PHP 类之前,我们需要先理解面向对象编程(也称为 OOPs)的概念。与其他编程语言(如 C++JAVA 等)不同,PHP 也支持面向对象编程的概念。

PHP 面向对象编程 (OOP)

这是一种编程概念,其中一切都被视为一个对象,然后我们通过使用这些不同的对象来实现软件。

例如,在学校里,所有学生、教学人员、行政人员等都可以被视为特定类型(称为学校)的对象。

与 OOPs 和类相关的一些术语:-

序号术语定义
1Class用户定义的类类型,它结合了 变量、局部数据和 函数
2对象这些是开发者创建的局部实例,用于访问类的内容。
3成员变量这些是定义在类内部的变量,只能由成员函数访问。
4成员函数这些是定义在类内部的函数,通常用于访问数据对象。
5继承继承是面向对象编程的主要原则之一,其中父类(或基类)的特征和属性会传递给子类(或派生类)。子类继承了父类中定义的成员函数和变量。
6父类这是子类继承其特征和属性的基类。它也称为超类或基类。
7子类继承父类特征和属性的类。这些类型的类也称为子类或派生类。
8多态它是面向对象编程的一个基本概念,它表明一个函数可以用于各种其他目的。在这种情况下,函数的名称保持不变,但参数可以不同。
9重载这是一种多态性,其中一个函数类根据特定类型的参数被重载为不同的实现形式,或者我们可以使用不同的实现来重载相同类型的函数。
10数据抽象这是一种特定的数据类型,其中数据实现细节是隐藏的。
11封装将所有数据和成员函数包装在一起以创建新对象的进程。
12构造函数创建同类对象时自动调用的特殊函数。
13析构函数当对象超出作用域或被删除时自动调用的特殊函数。

在 PHP 中定义类

PHP 类几乎与函数类似,但有一个主要区别在于,类在一个称为对象的单一格式中包含变量和函数,或者可以被表述为类是由一组对象组成的。

语法

示例:用于显示 PHP 类用法的 PHP 程序

示例

输出

BMW --> red
audi --> blue
volvo --> black

在此程序中,我们声明了一个名为 car 的类,其中包含成员变量 $name 和 $color。我们声明了成员函数 set_name 以向特定创建的对象添加名称,set_color 以向该对象添加颜色,get_name 以打印对象,get_color 以打印对象。为了访问声明的类,我们声明了三个对象 $BMW、$Audi 和 $Volvo,并使用这些对象调用了 cars 类。

为了访问类中声明的成员函数,我们使用创建的对象与类中的成员函数结合使用,并将值作为参数传递,例如,$BMW->set_name("BMW"),$audi->set_color("blue"),$Volvo->set_name("Volvo"),为了打印结果,我们使用 get_name 函数与类对象一起使用,例如 $BMW->get_name(),$audi->get_color()。

$this 关键字

$this 关键字引用当前对象,并且 $this 关键字只能在类的成员函数内部使用。我们可以通过两种方式使用 $this 关键字:

1) 要向声明的变量添加值,我们必须在 set_name 函数中使用 $this 属性

示例

输出

JOHN $ 2000000
ROCK $ 1200000

在上面的示例中,我们在 set_name 和 set_salary 中使用了 $this 来为声明的变量 name 和 salary 添加新值,之后,我们可以通过 echo 来获取输出。

2) 要向声明的变量添加值,可以直接更改变量的属性。

示例

输出

JOHN  $ 2000000 
ROCK  $ 1200000

在上面的示例中,我们直接在 name 和 salary 中使用了 $this 来为声明的变量 name 和 salary 添加新值,之后,我们可以通过 echo 来获取输出。

在 PHP 中创建对象以访问类

为了访问 class employees 的成员变量和成员函数,我们创建了三个对象,并使用 new 关键字将它们分配给 class employees。

使用对象调用成员函数

创建对象后,我们可以使用这些对象来调用类中的成员函数,并通过这些成员函数为成员变量赋值。

我们已调用其他成员函数与声明的对象来打印输出。

示例 - 用于显示 PHP 类用法的 PHP 程序

示例

输出

JOHN
10000
audit manager

DOE
150000
engineer

NINA
70000
accountant

说明

在此程序中,我们声明了一个名为 employee 的类来维护公司内部工作的员工记录,该类包含成员变量 $name, $profile$salary。我们声明了成员函数 set_name 以向特定创建的对象添加名称,set_salary 以向该对象添加薪水,以及 set_profile 以添加员工的职位。

我们使用了 $this 函数来指向添加数据时的当前对象。为了检索输出,我们必须使用 get_name 函数来打印对象名称,get _salary 来打印对象薪水,以及 get_profile 来打印对象的职位。


下一主题PHP 构造函数