当前位置:首页 > 日记 > 正文

PHP中特性用法的详细介绍

PHP中特性用法的详细介绍
通俗地说,在PHP中使用特征关键字是为了解决类想要集成基类的属性和方法的方法,并希望拥有其他基类,而特性通常是使用的。
< PHP
特征驱动{
公共carname美元= 'trait;
公共函数驱动(){
回声驱动{美元-> carname } ;
}
}
类人{
公共功能吃(){
回声吃;
}
}
班级学生延伸人{
使用驱动;
公共职能研究(){
研究;
}
}
学生=新学生();
学生(学习);
学生-吃饭();
学生>驾驶();

>

输出结果如下:
书房

驱动特性
在上面的例子中,继承人学生上课的吃法,并结合驱动,有驱动方法和属性carname。

如果在特性、基类和这个类中有相同属性的一些属性或方法,那么最终保留哪一个属性或方法
< PHP
特征驱动{
公共函数hello(){
hello;
}
公共函数驱动(){
从驱动器驱动;
}
}
类人{
公共函数hello(){
你好;
}
公共函数驱动(){
从人身上开车;
}
}
班级学生延伸人{
使用驱动;
公共函数hello(){
你好学生;
}
}
学生=新学生();
学生-您好();
学生>驾驶();
>
输出结果如下:
你好生
开车从驱动
因此,得出的结论是,当方法或属性名称相同时,当前类中的方法将覆盖特征方法,而特征方法覆盖基类中的方法。

如果要组合多个特性,则特征名称用逗号分隔:
使用trait1,trait2;
如果不止一个特性包含相同的名称方法或属性,该怎么办答案是,当多个特性的组合包含相同的名称属性或方法时,需要明确声明以解决冲突,否则将产生致命错误。
< PHP
性状trait1 {
公共函数hello(){
回声trait1::您好;
}
公共函数HI(){
回声trait1::hi;
}
}
性状trait2 {
公共函数hello(){
回声trait2::您好;
}
公共函数HI(){
回声trait2::hi;
}
}
班班{
使用trait1,trait2;
}
>
输出结果如下:

复制代码代码如下所示:

PHP致命错误:特性方法hello未被应用,因为,因为错误:20。
使用而不是作为运营商解决冲突,而不是使用一个方法来代替其他。方法是为方法提取别名。
< PHP
性状trait1 {
公共函数hello(){
回声trait1::您好;
}
公共函数HI(){
回声trait1::hi;
}
}
性状trait2 {
公共函数hello(){
回声trait2::您好;
}
公共函数HI(){
回声trait2::hi;
}
}
班班{
使用trait1,trait2 {
trait2::你好,而不是trait1;
trait1::嗨,不是trait2;
}
}
班班{
使用trait1,trait2 {
trait2::你好,而不是trait1;
trait1::嗨,不是trait2;
trait2::喜为喜;
trait1::大家呵呵;
}
}
obj1 =新一级(美元);
obj1美元->你好();
obj1美元->嗨();

$ obj2 =新班();
$ obj2 ->你好();
$ obj2 ->嗨();
$ obj2 ->黑();
$ obj2 ->呵呵();
>
输出结果如下:
trait2::你好
trait1::你好

trait2::你好
trait1::你好
trait2::你好
trait1::你好
AS关键字对修改该方法的访问控制还有另一个用途:

特性还可以结合特性,而特性支持抽象方法、静态属性和静态方法,测试代码如下所示:
< PHP
Trait Hello {
公共函数sayHello(){
你好;
}
}
特点世界{
使用你好;
公共函数表示世界(){
回声世界;
}
摘要公共功能getworld();
公共功能公司(){
静态$ = 0;
$ = $ 1;

}
公共静态函数doSomething(){
做某事;
}
}
class HelloWorld {
使用世界;
公共功能getworld(){
return'get世界;
}
}
$ obj =新的HelloWorld();
$ obj -> sayHello();
$ obj ->表示世界();
echo $ obj -> getworld()。;
HelloWorld::doSomething();
$ obj ->公司();
$ obj ->公司();
>
输出结果如下:
你好
世界
得到世界
做某事


以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。

相关文章

ps怎么设计水晶纹理效果的背景?

ps怎么设计水晶纹理效果的背景?

纹理,背景,水晶,效果,电脑软件,利用平时制作水晶纹理效果,其制作步骤比较复杂,主要是在通道里进行操作,现在就把操作步骤和截图分享出来,供大家参考使用。软件名称:Photoshop CS5 绿色版官方中文正式原版软件大小:104.06MB更新时间:2014-06-011、…

QQ截图不能截取右键菜单的解决方法

QQ截图不能截取右键菜单的解决方法

解决方法,右键菜单,截图,电脑软件,QQ,QQ截图不能截取右键菜单的解决方法当我们在使用QQ截图的时候发现无法截取右键菜单,当按下右键菜单再按下截图热键"Ctrl+Alt+A"却发现右键菜单不见了。其实这是热键中的Alt键在作怪,要解决这个问题也很…

excel 公式填充的方法

excel 公式填充的方法

方法,填充,公式,电脑软件,excel,  Excel中如何填充公式呢?接下来是小编为大家带来的excel 公式填充的方法,供大家参考。excel 公式填充的方法:  公式填充步骤1:在填写单元格时,之前的连续数据区域要大于或等于4行。公式填充步骤2:公式填写区…

AI怎么画一个水墨效果的樱花树?

AI怎么画一个水墨效果的樱花树?

水墨,画一,效果,樱花树,电脑软件,AI里的【斑点画笔工具】和【橡皮擦工具】对于绘制树杈是非常有用的,下面我们就来介绍一下如何利用【斑点画笔工具】和【橡皮擦工具】绘制好看、美观的樱花树。软件名称:Adobe Illustrator CS6 (AI cs6) 精简…

让IIS 支持 ISO(flv)下载

让IIS 支持 ISO(flv)下载

下载,支持,电脑软件,IIS,flv,1、打开INTERNET信息管理器 2、在以计算机名名+(本地计算机)上点右键,选择&ldquo;属性&rdquo;,点击界面中的&ldquo;MIME类型&rdquo;按钮。这里列出的是所有IIS支持解析的扩展名,在这里可根据实际需要添加、删除。 比…

Nodejs回调加超时限制两种实现方法

Nodejs回调加超时限制两种实现方法

回调,方法,超时,两种,电脑软件,Nodejs回调加超时限制两种实现方法Nodejs下的IO操作都是异步的,有时候异步请求返回太慢,不想无限等待回调怎么办呢?我们可以给回调函数加一个超时限制,到一定时间还没有回调就表示失败,继续后面的步骤。方案1:用asy…

jquery hover 不停闪动问题的解决

jquery hover 不停闪动问题的解决

解决方法,亦为,电脑软件,jquery,hover,在前端开发中用的较多的是jquery,之前遇到一个问题,一个下拉的jquery下拉菜单效果,hover上去,一直闪动,用mouseovermouseout好好的,当时没搞定,今天逛论坛看到一个方法,可以行.只怪自己之前看jquery a…

word论文排版技巧

word论文排版技巧

论文排版,技巧,电脑软件,word,又是一年毕业季,想必最让人头疼的就是论文的事情了吧?毕业论文最基本的一点就是要格式符合要求,今天给大家总结了Word论文排版九大技巧。1、用好样式编写论文,一定要使用样式,除了Word原先所提供的标题、正文等样…

PS图象处理软件是如何使一个立体效

PS图象处理软件是如何使一个立体效

图象,处理软件,海报,效果,电脑软件,很多人用PS来设计海报。用PS制作海报方便快捷,省去了很多麻烦。今天的教程结果主要由三维文字和装饰部分组成,立体字基本上是用一个简单的3D工具完成的,然后颜色和纹理需要调整,装饰部分需要慢慢收集相关材料…

解决WIN2003服务器上传文件大小限

解决WIN2003服务器上传文件大小限

服务器,文件大小,上传,电脑软件,Windows2003系统下,上传较大的文件时,出现&ldquo;Request 对象 错误 'ASP 0104 : 80004005'&rdquo;错误。更改win2003的IIS 6.0对asp的上传文件大小为200k限制,aspx的上传程序没有影响。在IIS6.0中,默认设置是…

用javascript获取任意颜色的更亮或

用javascript获取任意颜色的更亮或

示例代码,颜色值,颜色,电脑软件,javascript,前言本文主要给大家介绍的是关于利用javascript获取任意颜色更亮或更暗颜色值的相关内容,下面话不多说,来一起看看详细的介绍:预处理CSS,比如Sass和less可以通过设定一个特定值,让任何颜色变得更亮或…

如何将EXCEL表格的内容导入到Corel

如何将EXCEL表格的内容导入到Corel

如何将,表格,导入到,内容,电脑软件,CorelDRAW中能做表格?答案是肯定的,而且方法不止一种,之前的教程中我们就介绍了两种方法:利用图纸工具或者表格工具。现在教大家一个更快捷、简单的方法,将Excel表格直接导入到CDR软件,立刻完成你的表格绘制,而…