PHP中trait怎么用-创新互联
这篇文章将为大家详细讲解有关PHP中trait怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联公司是一家专注网站建设、网络营销策划、成都小程序开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立10多年以来,已经为数千家软装设计各业的企业公司提供互联网服务。现在,服务的数千家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。说通俗点,PHP中使用trait关键字是为了解决一个类既想集成基类的属性和方法,又想拥有别的基类的方法,而trait一般情况下是和use搭配使用的。请看下面的示例代码
carName}
"; } } class Person { //创建一个基类 public function eat() { //定义一个方法 echo "eat
"; } } class Student extends Person { //创建一个子类继承Person类 use Drive; //使用trait定义的类Drive public function study() { //定义一个方法 echo "study
"; } } $student = new Student(); //创建对象 $student->study(); //调用自己定义的方法 $student->eat(); //调用父类方法 $student->driving(); //调用trait定义的类Drive的方法 ?>
运行效果图如图所示
上面的例子中,Student类通过继承Person,有了eat方法,通过组合Drive,有了driving方法和属性carName。
如果Trait、基类和本类中都存在某个同名的属性或者方法,最终会保留哪一个呢?
"; } public function driving() { echo "我是trait类的方法driving()
"; //定义一个方法 } } class Person { //创建父类 public function hello() { //定义一个方法 echo "我是父类的方法hello()
"; } public function driving() { //定义一个方法 echo "我是父类的方法driving()
"; } } class Student extends Person { //创建子类继承Person类 use Drive; //使用trait定义的类Drive public function hello() { //定义一个方法 echo "我是子类的方法hello()
"; } } $student = new Student(); //创建对象 $student->hello(); //调用hello方法 $student->driving(); //调用deiving方法 ?>
运行效果如图所示
因此得出结论:当方法或属性同名时,当前类中的方法会覆盖 trait的 方法,在这个例子中也就是student的hello()方法覆盖了trait中的hello()方法。而 trait 的方法又覆盖了基类中的方法。在这个例子中,trait的driving()方法就是覆盖了Person类中driving()方法。
关于PHP中trait怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文章标题:PHP中trait怎么用-创新互联
当前网址:http://ybzwz.com/article/dgshcd.html