建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 网站开发 > PHP教程 >

PHP中关于trait使用方法的详细介绍

时间:2019-07-26 11:12来源:未知 作者:yang 点击:
本篇文章主要介绍了PHP中trait使用方法,个人觉得挺不错的,现在分享给大家,也给大家做个参考。一起过来看看吧。下面开始正文。 说通俗点,PHP中使用 trait关键字 是为了解决 一个类既想集成基类的属性和方法 ,又想拥有别的基类的方法,而trait一般情况下
本篇文章主要介绍了PHP中trait使用方法,个人觉得挺不错的,现在分享给大家,也给大家做个参考。一起过来看看吧。下面开始正文。
 
说通俗点,PHP中使用trait关键字是为了解决一个类既想集成基类的属性和方法,又想拥有别的基类的方法,而trait一般情况下是和use搭配使用的。请看下面的示例代码

<?php

header("Content-type:text/html;charset=utf-8");

trait Drive {//使用trait 创建一个基类
    public $carName = 'trait';//定义一个变量
    public function driving() {//定义一个方法
        echo "driving {$this->carName}<br>";
    }

}

class Person {//创建一个基类
    public function eat() {//定义一个方法
        echo "eat<br>";
    }
}

class Student extends Person {//创建一个子类继承Person类
    use Drive;//使用trait定义的类Drive
    public function study() {//定义一个方法
        echo "study<br>";
    }
}

$student = new Student();  //创建对象
$student->study();//调用自己定义的方法
$student->eat();//调用父类方法
$student->driving();//调用trait定义的类Drive的方法
运行效果图如图所示:



上面的例子中,Student类通过继承Person,有了eat方法,通过组合Drive,有了driving方法和属性carName。
 
如果Trait、基类本类中都存在某个同名的属性或者方法,最终会保留哪一个呢?

因此得出结论:当方法或属性同名时,当前类中的方法会覆盖 trait的 方法,在这个例子中也就是student的hello()方法覆盖了trait中的hello()方法。而 trait 的方法又覆盖了基类中的方法。在这个例子中,trait的driving()方法就是覆盖了Person类中driving()方法。
(责任编辑:yang)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片