类必须被定义后才能使用,定义一个类就是定义这一类对象的模板,定义属性和定义方法。
class[类名]{ 成员属性声明 成员方法声明 }
定义一个空类:
<?php class EmptyClass { }
注:
1、函数名、类名不区分大小写。
2、变量名区分大小写。
类中的函数也叫“成员方法”,函数和方法都可以实现一系列操作,唯一的区别是,函数是独立的代码实现功能实现,二方法是类的一部分,实现了类的功能
<?php class Job { function findJob($job_name) { echo '找到工作,工作职位是'.$job_name; } function jobList() { return['php工程师','java工程师']; } }
类的实例化也成为创建对象。需要先声明对象是哪个类,同时指出变量名称。实例化是通过关键字new来声明,然后通过使用“对象名->成员”方法的形式,调用类中方法
创建(二)中Job类的对象:
<?php class Job { function findJob($job_name) { echo '找到工作,工作职位是'.$job_name; } function jobList() { return['php工程师','java工程师']; } } $my_job = new Job(); $job_list = $my_job->jobList(); $my_job->findJob($job_list[0]);
Job为类,而my_job就是Job类的一个实例化,并且通过my_job调用类中的成员。结果为:找到工作,工作职位是php工程师。
成员属性,也称为成员变量,是类中的变量。成员属性保存类中的数据信息。成员方法之间通过成员属性进行信息传递和功能交互。定义一个成员属性的格式是:
<?php class Job { private $job_list = ['php工程师','java工程师']; function findJob($job_name) { echo '找到工作,工作职位是'.$job_name; } public function jobList() { return $this->job_list; } } $my_job = new Job(); $job_list = $my_job->jobList(); $my_job->findJob($job_list[0]);
类的方法和变量前面,都可以加上访问权限的关键字,通过这些关键字可以对方法和成员属性做一定的限制。
此标识该成员属性、方法是对其他所有代码公开,不写任何关键字是默认为public处理
此标识该成员属性、方法只可以在自己类的代码中使用,其他任何外部代码都无法访问和使用。即使是它的子类,也无法访问。
和private关键字类似,都是禁止外部代码的直接访问,但是子类无法调用private的成员,却可以调用protected成员。即可以在本类和子类中被调用,其它地方不可以。
在类中,变量叫做“属性”,函数叫做“方法”,而常量也可以放在类中使用,一般叫做‘’类中常量”或“类常量”。可以把类中始终保持不变的值定义为常量。定义时不需要“$”符号,使用“const”.
<?php class Job { const JOB_LIST = ['php工程师','java工程师']; function findJob($job_name) { echo '找到工作,工作职位是'.$job_name; } } $my_job = new Job(); $my_job->findjob(JOB:JOB_LIST[0]);
使用方式: 1:在类中时:"self::静态变量"。 2:在类的外部:"类名::静态变量"。 3:在类的外部:"对象名::静态变量"。
被static修饰的成员方法被称为“静态方法”。静态方法在程序最开始是分配单独一块的内存空间,静态方法是被共享的。静态方法被调用时可以直接通过:“类名::方法名”形式调用,也可以直接实例化对象,通过“对象::方法名”形式调用。
在静态方法中,不能调用静态变量,但是普通方法可以调用静态变量。因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用。