Trait講解

<?php

/**
 * Trait解決PHP單繼承的一種方法,使開發人員在不一樣層次結構的類中複用屬性和方法
 * Trait沒法實例化
 * Trait不是類,不能被繼承,因此不能再Trait中不能聲明抽象方法
 * Trait中沒法聲明常量
 * ThinkPHP中Trait有應用
 */

    //聲明一個Trait
    trait Name
    {
        public function getName()
        {
            return '張三';
        }
    }

    //聲明一個Trait
    trait Say
    {
        public function say() {
            return 'world';
        }
    }

    //聲明一個類
    class Lang
    {
        //導入Trait(導入多個Trait用,分隔)
        use Name,Say;

        public function sayPhp()
        {
            return 'php';
        }
    }

   class Chinese extends Lang
   {
       public function show()
       {
           return $this->getName().'會說'.$this->say().',還會說'.$this->sayPhp();
        }
   }

   $ch = new Chinese();
    echo $ch->show();
    
相關文章
相關標籤/搜索