PHP中关于trait使用方法的详细介绍-php教程

资源魔 26 0
本篇文章次要引见了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的办法
?>

运转成果图如图所示

1.png

下面的例子中,Student类经过承继Person,有了eat办法,经过组合Drive,有了driving办法以及属性carName。

假如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办法
?>

运转成果如图所示

1.png因而患上出论断:当办法或属性同名时,以后类中的办法会笼罩 trait的 办法,正在这个例子中也就是student的hello()办法笼罩了trait中的hello()办法。而 trait 的办法又笼罩了基类中的办法。正在这个例子中,trait的driving()办法就是笼罩了Person类中driving()办法。

假如想理解更多php的相干常识能够到网站的php模块中去学习更多无意思的常识。

以上就是PHP中对于trait应用办法的具体引见的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 Trait

抱歉,评论功能暂时关闭!