在之前的文章中给大家带来了《PHP中自定义错误处理函数与错误屏蔽你会了吗?》,其中详细的给大家带来了PHP错误处理的相关知识,本篇我们一起来看一下PHP中面向对象的相关知识,希望对大家有帮助!
面向对象其实就是将需要处理的问题抽象作为一个对象,然后通过对象的属性和行为来解决对象的实际问题。那我们一起来看一看应该怎样在PHP中去定义类与对象。
class定义类
在PHP中,这个类是一个抽象的概念。我们可以理解为世界上的任何事物都有自身的属性与方法,属性指的就是一个事物的性质,例如一个篮球,它的属性指的就是它的大小、颜色、重量之类的;它的方法也就是他所具有的功能。
总而言之,类是变量(类的属性)与作用于这些变量的函数(类的方法)的集合,属性与方法是构成类的基础。
在PHP中我们可以通过class关键字加类名的方式定义一个类,它的语法格式如下:
[修饰类的关键字] class 类名{ 类的属性和方法; }
类名的命名规则与变量名与函数名的命名规则是非常类似的,都遵循的是PHP中的自定义命名规则。
-
类名要以字母和或者下划线开头,由字母、数字和下划线组成。
-
当类名有多个单词构成的时候,一般情况下习惯把每个单词的首字母大写,
-
需要注意的是,类名最好还是要有一定的意义,最好不要由随便的几个字母组成。
在上述语法格式中,里面修饰类的关键字是可以省略的,通常使用abstract和final作为关键字来修饰类。
成员属性
了解类的语法格式后,我们就应该了解到类的成员属性,什么是成员属性,我们把在类中直接声明的变量成为成员属性,也叫做成员变量。在类中能够声明多个变量,也就是在类中有多个成员属性,每个变量都储存类的不同的属性信息。它的语法格式如下:
访问权限修饰符 属性名称 = 属性值;
其中我们需要注意的是,在类中声明成员属性时,一定要在前面使用一个关键字来修饰,这个和声明变量时不一样,在类中声明变量必须要有关键字来修饰。其中一些关键字是有意义的,如果不需要有别的意义来进行修饰的话要使用“var”关键字来修饰,它是没什么特定意义的,但是一旦有别的特定意义就要用别的关键字来修饰。
接下来给大家列举一些常用的修饰关键字:
-
public
:用它修饰后声明的成员属性,在类的内部、子部和外部都可以使用,不会受到限制,表示它是一个公共的。 -
protectrd
:用它修饰后声明的成员属性,在类的内部和子部可以使用,但是不能再类的外部使用。 -
pirvate
:用它修饰后声明的成员属性,只能够在类的内部使用,不能再类的子部和外部使用。
实例如下:
<?php class Family{ var $father; public $mother; private $brother; protectrd $sister; } ?>
定义一个名为Family的类,在类中用不同的关键字修饰成员属性。
成员方法
成员方法就是在类中定义的函数 ,函数实现的是某一个独立的功能,与函数不同的是,成员方法实现的是类的一个行为,是类的一部分。在类中可以声明多个成员方法,在声明成员方法时需要注意的是,可以在function
关键字的前面加上访问权限修饰符来控制访问权限。
实例如下:
<?php class Family{ var $father; public $mother; private $brother; public static $sister; public function Write(){ } protected static function Read(){ } function Listen(){ } } ?>
在PHP中,还有类型声明,
引入了类型声明,我们可以为成员方法的形参和返回值声明类型,格式如下所示:
[权限修饰符] function 方法名 (类型 参数1, 类型 参数2, ..., 类型 参数n) : 返回值类型 { ... ... }
其中参数类型可以包括整型、字符串型、浮点型和布尔型,实例如下:
<?php class Family{ var $father; public $mother; private $brother; public static $sister; public function Write(string $a, int $b):bool{ } protected static function Read(string $str):int{ } function Listen(int $num):bool{ } } ?>
大家如果感兴趣的话,可以点击《PHP视频教程》进行