首頁  >  文章  >  後端開發  >  PHP如何使用Trait特性實現多重繼承? (程式碼範例)

PHP如何使用Trait特性實現多重繼承? (程式碼範例)

青灯夜游
青灯夜游原創
2019-02-22 11:20:563087瀏覽

PHP不支援多重繼承,但可以使用介面或Trait特性來使用多重繼承。在之前的文章【PHP如何使用介面實作多重繼承? 】中介紹了使用介面實現多重繼承的方法,以下這篇文章就來帶大家了解一下Trait特性,介紹在PHP中使用Trait特性實現多重繼承的方法,希望對大家有所幫助。

PHP如何使用Trait特性實現多重繼承? (程式碼範例)

什麼是Trait特性?

Trait是PHP 5.4中引入的新概念,這消除了PHP中多重繼承的限制。在PHP 5.4之前,PHP支援單繼承和多接口,但Trait將消除沒有多重繼承的限制。 【影片教學推薦:PHP教學

Traits是一種在單一繼承語言(如PHP)中重複使用程式碼的機制。它的主要概念是程式碼的可重用性。對於只支援PHP等單一繼承的in語言,Trait特性似乎非常有用。因此,使用Trait特性的主要原因是獲得多重繼承的好處,或是程式碼可重複使用性。

使用Trait特性實作多重繼承

#1、使用類別與Trait特性

基本句式:

class child_class_name extends parent_class_name {
    use trait_name;
    ...
    ...
    child_class functions
}

程式碼範例:

<?php 
header("content-type:text/html;charset=utf-8");   
// Hello类
class Hello  { 
  public function sayhello() { 
     echo "<br>Hello"; 
  } 
} 
  
// Phpzww 特性
trait  Phpzww{ 
  public function sayfor() { 
     echo " php中文网"; 
  } 
} 
  
class Sample extends Hello { 
   use Phpzww; 
   public function demo() { 
      echo "<br><br>学习编程!"; 
  }  
} 
  
$test = new Sample(); 
$test->sayhello(); 
$test->sayfor(); 
$test->demo(); 
?>

輸出:

PHP如何使用Trait特性實現多重繼承? (程式碼範例)

#程式碼說明:

在上面的程式碼中,「traits」與父類一起使用。有一個名為“Hello”的類,其中包含函數sayhello()和一個名為“Phpzww”的trait  特性,其中包含函數demo(),並且有一個名為“Sample”的子類,我們正在創建這個名為「test」的類別的對象,並使用它來呼叫類別和trait 特性裡的所有函數。

2、使用多個Trait特性

基本句式:

class child_class_name {
    use trait_name;
    ...
    ...
    child_class functions
}

程式碼範例:

<?php 
header("content-type:text/html;charset=utf-8");   
// 特性:Hello 
trait Hello{ 
  public function sayhello() { 
     echo "<br>Hello"; 
  } 
} 
  
// 特性:Phpzww
trait  Phpzww{ 
  public function sayfor() { 
     echo " php中文网!"; 
  } 
} 
  
class Sample { 
  use Hello; 
  use Phpzww; 
  public function Helloforphp() { 
      echo "<br><br>欢迎学习PHP!"; 
   }  
} 
  
$test = new Sample(); 
$test->sayhello(); 
$test->sayfor(); 
$test->Helloforphp(); 
?>

輸出:

PHP如何使用Trait特性實現多重繼承? (程式碼範例)

在上面的程式碼中,使用了多個Trait特性來實作多重繼承。有兩個名為「Hello」和「Phpzww」的特性,分別包含sayhello()、sayfor()函數;還有一個「sample」子類,包含Helloforphp() 函數。我們建立了名為「test」的類別的對象,並使用它來呼叫traits 特性的所有函數。

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是PHP如何使用Trait特性實現多重繼承? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn