PHP--面向对象编程
2021/4/13 1:25:40
本文主要是介绍PHP--面向对象编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一:面向对象
(一)类的声明
类必须被定义后才能使用,定义一个类就是定义这一类对象的模板,定义属性和定义方法。
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]);
类的方法和变量前面,都可以加上访问权限的关键字,通过这些关键字可以对方法和成员属性做一定的限制。
1.public(公共成员)
此标识该成员属性、方法是对其他所有代码公开,不写任何关键字是默认为public处理
2.private(私有成员)
此标识该成员属性、方法只可以在自己类的代码中使用,其他任何外部代码都无法访问和使用。即使是它的子类,也无法访问。
3.protected(保护成员)
和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修饰的成员方法被称为“静态方法”。静态方法在程序最开始是分配单独一块的内存空间,静态方法是被共享的。静态方法被调用时可以直接通过:“类名::方法名”形式调用,也可以直接实例化对象,通过“对象::方法名”形式调用。
在静态方法中,不能调用静态变量,但是普通方法可以调用静态变量。因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用。
这篇关于PHP--面向对象编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享