搜索
博主信息
博文 34
粉丝 0
评论 0
访问量 34216
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
507创建trait实例,实现代码复用
1A7498的博客
原创
1015人浏览过
<?php
if(!class_exists('Play'))
{
    class Play
    {
        protected $name;
        public function __construct($name='小白')
        {
            $this->name=$name;
        }
        public function game($game='游戏')
        {
            return $this->name.'玩'.$game;
        }
    }
}
if(!class_exists('Listen'))
{
    trait Listen//trait可以访问父类中的属性
    {
        public $friend = '小名';
        public function hobby($name='php')
        {
            return $this->name.'和'.$this->friend.'在学习'.$name;
            //$this->name是指父类中的小白
            //$this->friend是指trait类中的小名
        }
        public function music($music='音乐')
        {
            return $this->name.'喜欢听'.$music;
        }
        //和父类同名的方法
        public function game($game = 'LOL')
        {
            return $this->name.'在玩'.$game;
        }
    }
}
class Student extends Play
{
    //导入trait
    use Listen;
}

if(!class_exists('Study'))
{
    class Study
    {
        use Listen;
        private $name;
        public function __construct($name)
        {
            $this->name = $name;
        }
        public function __get($name)
        {
            return $this->$name;
        }
    }
}
$play = new Play();//实例化Play
echo $play->game().'<hr>';//直接调用父类


//因为父类与trait中分别有同名的study()方法
//子类调用study()方法时,会优先调用trait中的study()方法
$student = new Student();
echo $student->game().'<br>';
echo $student->music().'<br>';
echo $student->hobby().'<hr>';

//调用trait类中的函数方法,实现代码复用
$study = new Study('小军');
echo $study->game('cs').'<br>';
echo $study->music('jay').'<br>';
echo $study->hobby('看电影').'<hr>';

?>

QQ截图20180511173347.png

要理解子类中的$this->name是指父类中的$name,父类与trait中分别有同名函数优先调用trait中的函数






批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
  • 2018-03-16 11:39:01
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学