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

angryTom
Lepaskan: 2023-04-07 06:18:01
asal
2584 orang telah melayarinya

本篇文章主要介绍了PHP中trait使用方法,个人觉得挺不错的,现在分享给大家,也给大家做个参考。一起过来看看吧。下面开始正文。

说通俗点,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的方法 ?>
Salin selepas log masuk

运行效果图如图所示

1.png

上面的例子中,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方法 ?>
Salin selepas log masuk

运行效果如图所示

1.png因此得出结论:当方法或属性同名时,当前类中的方法会覆盖 trait的 方法,在这个例子中也就是student的hello()方法覆盖了trait中的hello()方法。而trait的方法又覆盖了基类中的方法。在这个例子中,trait的driving()方法就是覆盖了Person类中driving()方法。

如果想了解更多php的相关知识可以到网站的php模块中去学习更多有意思的知识。

Atas ialah kandungan terperinci PHP中关于trait使用方法的详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!