- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP接口结构,interface
接口:指的是对象的公共方法
也有一种接口技术,定义一个接口结构,用于限制一个类(对象)应该具备的公共方法(接口方法)!
语法:
使用关键字 interface 声明一个接口结构!
声明:
interface i_Goods {
public function sayName();
public function sayPrice();
}
注意:接口内只能包含 公共的抽象方法(不完整的方法)!
使用:
使一个类来实现接口内定义的所有接口方法(公共方法)
实现:使用关键字 implements 来完成
interface i_Goods {
public function sayName();
public function sayPrice();
}
abstract class Godds implements i_Goods {
}
class Shop implements i_Goods {
public function sayName() {
}
public function sayPrice() {
}
}
明显,实现接口结构的类,就包含了接口中定义的抽象方法,两个选择:
1:定义成抽象类
2:实现接口方法
类似于抽象类,比较与接口的区别:
1:抽象类与普通类之间是继承关系
???? 普通类继承抽象类,第一,可以得到抽象类中的已有的常规成员,第二,才需要实现抽象方法(也不一定是 public 的)
2:接口与普通类之间是实现关系
???? 普通类实现了接口,只能将其没有实现的公共方法实现
3:接口只用于定义公共的方法,而抽象类,什么都可以有
典型的使用:
多实现
一个类,可以同时实现多个接口
interface i_a {
public function sayA();
}
interface i_b {
public function sayB();
}
class A implements i_a,i_b {
}
接口可以定义常量:
interface i_a {
const PAI = 3.14;
public function sayA();
}
interface i_b {
public function sayB();
}
class A implements i_a,i_b {
public function sayA() {
}
public function sayB() {
}
}
echo A::PAI;
辨别?
1:接口是不是类?????NO
???? 可以用 class_exists(); 判断是不是类
2:PHP是单继承,怎么实现多继承?
???? “可以通过接口的多实现来模拟” 此说法是错误的
???? 答案:不能实现多继承
类文件的载入-自动加载机制
项目中如何管理大量的类的定义?
典型的,每个类,独立的创建一个文件,用于保存定义该类的源代码!使用时,将该文件载入即可!
此时,类文件的命名为:类名.class.php
此时,面临一个类文件很多,某个功能需要使用其中部分类:
如何合理方便载入?
老办法:
将载入类的代码,放在一起
问题是:会有类的额外加载
现在的载入类文件的方式是:按需加载
在需要某个类时,如果该类没有被加载,则加载定义该类的类文件
判断当前类是否已经加载?
该类在哪个文件中?
什么时机执行上面的操作? (自动加载机制来完成)
此时可以使用PHP的类文件,自动加载机制完成!
自动加载机制
当需要一个类,但是并没有找到该类的定义,此时,PHP核心(Zend Engine)会自动尝试调用一个叫: __autoload() 的函数。与此同时,会将当前所需要的类名作为参数,传递到 __autoload() 这个函数中
默认是没有这个函数的,需要用户自己定义!
因此,用户脚本需要完成定义该函数
该函数应该有个形参,用于得到当前所需要的类名
示例:
function __autoload($class_name) {
require ./.$class_name.class.php;
}
new Book;
此时,输出的结果为:
此时,我们只要完成该函数,利用得到的类名,将类名所对应的文件载入即可
序列化,反序列化(串行化,反串行化)
场景:
数据的持久性保存!
例如:将数据保存在文件内
向文件写入数据:
写入的长度 = file_put_contents(quot;文件quot;,quot;数据quot;);
从文件读取数据:
数据 = file_get_contents(quot;文件quot;);
写入:
$data = ginvip;
echo 写入前的数据:lt;br /
您可能关注的文档
最近下载
- 申请劳动仲裁委员会调查取证申请书.doc VIP
- 3098.1紧固件机械性能.pdf VIP
- 沥青混凝土路面实施性施工组织设计.pdf VIP
- 《论语》(Word打印版).doc VIP
- CHINA-POWER中电强能智能配电箱QN-PLC通用说明书.pdf
- 冀教-初中数学八上速记-第十二章 分式和分式方程压轴训练(6类压轴)(原卷版).pdf VIP
- 2024年贵州省中考语文试题(含答案解析).docx VIP
- 中国偏头痛诊断与治疗指南(中华医学会神经病学分会第一版).pptx VIP
- 2023-2024学年上海市延安中学高二上学期期末考试物理试卷(等级)含详解.docx VIP
- 2011比亚迪M6维修手册含电路图.pdf VIP
原创力文档


文档评论(0)