本篇文章主要介绍了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。
立即学习“PHP免费学习笔记(深入)”;
使用:1.上传到服务器或空间2.运行http://域名/install.php栏目介绍:1.网站常规设置用于设置网站的相关参数,还淘宝app2.用户信息管理用于管理用户的,浏览添加删除等3.商品汇采集用于采集商品的,我将淘宝上的商品分为普通商品和秒杀商品,还有的秒杀商品采集4淘宝链接生成用于生成淘宝商品推广链接,这个是根据app生成的,所以要填写app5.商品详细设置这个模块主要是用于管理商品的,
0
如果Trait、基类和本类中都存在某个同名的属性或者方法,最终会保留哪一个呢?
<?php
header("Content-type:text/html;charset=utf-8");
trait Drive { //使用trait定义一个类
public function hello() { //定义一个方法
echo "我是trait类的方法hello()<br>";
}
public function driving() {
echo "我是trait类的方法driving()<br>"; //定义一个方法
}
}
class Person { //创建父类
public function hello() { //定义一个方法
echo "我是父类的方法hello()<br>";
}
public function driving() { //定义一个方法
echo "我是父类的方法driving()<br>";
}
}
class Student extends Person { //创建子类继承Person类
use Drive; //使用trait定义的类Drive
public function hello() { //定义一个方法
echo "我是子类的方法hello()<br>";
}
}
$student = new Student(); //创建对象
$student->hello(); //调用hello方法
$student->driving(); //调用deiving方法
?>运行效果如图所示
因此得出结论:当方法或属性同名时,当前类中的方法会覆盖 trait的 方法,在这个例子中也就是student的hello()方法覆盖了trait中的hello()方法。而 trait 的方法又覆盖了基类中的方法。在这个例子中,trait的driving()方法就是覆盖了Person类中driving()方法。
如果想了解更多php的相关知识可以到网站的php模块中去学习更多有意思的知识。
以上就是PHP中关于trait使用方法的详细介绍的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号