1.首先,使用类必须要先了解类是什么
一些专业术语
类:是一种抽象的概念,是具有相同对象属性的集合(相似的数据和数据操作的封装 class),使用具体的类是不可行的,只能实例化。
对象:类的特例或者实例(一般用new来实例化一个对象)
成员变量:普通的变量加上了修饰符就是成员变量(如public,static,,private,protected)
成员方法:普通的函数加上了一个修饰符就是成员方法
实例化:类创建特例的过程(实例化一个对象 new)
2.创建类的步骤
使用class关键字创建
语法格式
[修饰符]class 类名{
成员变量;
成员方法;
}
类命名规范:
类名只能使用字母,下划线开头,不能以数字开头
类名不能使用关键字
类名不区分大小写,但是要使用驼峰法的写法
类名一定有意义
3.实例化类(new一个新对象)
对象变量 = new 类名;
对象变量 = new 类名();
对象变量: 普通的变量,只不过他的类型是对象类型
Eg:
$object = new myClass;
$object = new myClass();
判断是否是对像:两种方法
①.is_object(对像名) 是返回true 否返回false
②.instanceof:判断对象是否是哪个类的实例化 前面是对象名 后面是类名 eg:$obj instanceof myclass
注意:声明类的时候类名后面没有(),区别函数
4.成员变量
普通的变量放入到类中就变成了成员量(类的属性),使用修饰符public
定义格式:
修饰符 变量名="值";
public $name="lingjun";
类外的使用
echo 对象名->变量名(没有$);
类内的使用
$this->变量名(没有$);
$this:对象本身
注意:当定义一个类的新对象时,该对像的属性与前一个该类的对象的属性无关,这叫做对象的无关性
5.成员方法
定义:使用修饰符public将普通的函数放到类中就是成员方法,
格式:修饰符function 方法名(参数){
返回值
}
eg:public function show(){
echo "hello";
}
类外的使用:
对象->方法名;(不用echo,因为是函数,可以直接输出)
类内的使用
$this->方法名;
6.类常量
关键字:define,const
define不能在类里面定义常量,const可以
格式:define(常量名(大写),值) const 大写的常量名=值
类外的使用
echo 类名::常量名;
类内的使用
echo self::常量名; (self代表类本身,::代表域操作符)
7.魔术方法-构造函数:__construct()
概念:类初始化对象时系统自动调用的函数 __construct()
功能: 初始化对象运行时,所必须的数据(成员变量) 初始化运行时,所必须的前提操作(成员方法)
调用者: 系统自动调用(实例化对象时自动调用)
调用时间: 对象初始化流程
实例化对象时产生的过程
分配类的对象所必须的变量空间分配
类常量,变量空间分配
调用构造函数
初始化类运行时,必须数据
Php4: 方法名和类名相同,他就认为是一个构造函数
注意
如果类中没有定义构造函数,系统会自动的调用一个空的构造函数
如果php4中构造函数和php5构造函数,同时存在,那么php4中的构造函数不起作用,优先执行php5中的构造函数
如果构造函数中有形参,且不是默认参数,那么初始化对象时,必须具有(),并且里面传入相对应的实参数据.
构造函数在其他语言中直接不允许有返回值,但是php语言中语法中允许有返回值,但是返回的数据没有任何意思,且无法得到。
普通的成员方法和构造方法区别:
普通方法是用户使用类的对象调用的,而构造函数,是用户初始化对象时,系统自动调用
普通的方法如果方法名和类名相同,就变成了构造函数。
普通方法实参是调用方法时赋值的,而构造函数是初始化对象时,写到小括号内的。
普通方法一般都有返回值,而构造方法没有返回值
8.析构方法
概念:对象被销毁时,系统自动调用的函数
作用: 对象销毁时,销毁一些不必要的变量,系统出错时,销毁数据和错误检查,清理一些程序使用过程中占用的资源,以保证程序运行过程中不会始终占用资源
方法: __destruct() : 没有参数,没有返回值
销毁对象: 人工销毁对象 对象 = null; unset(对象);
系统销毁:系统会在页面加载完毕后,不使用该对象时,自动销毁
注意:构造和析构函数在封装的时候是没有必要加修饰符的,因为他们都是被系统自动调用的。
浙公网安备 33010602011771号