色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php parent trait

陳怡靜1年前7瀏覽0評論
PHP作為一門非常流行的編程語言,其具有非常強大的編程能力,而其中Trait成為了PHP語言中最新的特性之一。由于Trait具有便于代碼重用的獨特優勢,它已經成為了PHP語言中一個非常重要的特性。而在Trait之中,Parent Trait則是一個非常重要的方面。今天,我們就來介紹下PHP Parent Trait的相關知識。
在Trait中,parent的作用是讓開發者能夠通過繼承的方式調用其他trait中的方法。在一個trait中使用parent時,需要注意其父trait的順序。具體來說,我們在使用PHP Parent Trait時需要注意一個重要的問題,那就是Trait的繼承關系會影響parent的調用。這里我們舉個例子:
<?php
trait MyTraitA {
public function echoHello() {
echo 'Hello ';
}
}
trait MyTraitB {
public function echoWorld() {
echo 'World!';
}
}
trait MyTraitC {
use MyTraitA, MyTraitB {
MyTraitA::echoHello insteadof MyTraitB;
MyTraitB::echoWorld as myEchoWorld;
}
public function echoFromAll() {
return $this->echoHello() . $this->myEchoWorld();
}
}
class MyClass {
use MyTraitC;
}
$obj = new MyClass();
echo $obj->echoFromAll(); // 輸出 Hello World!

如上面的代碼所示,我們創建了一個MyTraitA,它使echoHello方法能夠輸出 “Hello”;再創建一個MyTraitB,它使echoWorld方法能夠輸出 “World!”;最后創建一個MyTraitC,并在其中組合MyTraitA和MyTraitB,使其同時擁有echoHello和echoWorld方法。同時,MyTraitC提供了一個新方法echoFromAll,這個方法將先輸出Hello,再輸出World,就像一句完整的句子一樣。最終在MyClass類中,我們將使用MyTraitC,并創建一個$obj對象。然后我們調用$obj->echoFromAll()方法,最終輸出了“Hello World!”。
這個例子極好的展示了Trait的組合和parent的使用方式,透過這個例子我們可以更好的了解parent的意義所在,同時也能清晰的了解Trait之間的繼承關系。
在Trait結構中,使用parent的正確方法非常重要。我們的下一個例子將更清晰的展示parent繼承使用的重要性:
<?php
trait b0 {
public function say() { echo __CLASS__." : hello from b0. "; }
}
trait b1 {
public function say() { echo __CLASS__." : hello from b1. "; }
}
class c1 {
use b0, b1;
public function say() { parent::say(); echo __CLASS__." : hello from c1. "; }
}
class c2 {
use b1, b0;
public function say() { parent::say(); echo __CLASS__." : hello from c2. "; }
}
<br>
$c1 = new c1; 
$c1->say(); // 輸出 b0 : hello from b0. b1 : hello from b1. c1 : hello from c1. 
echo '<br />';
$c2 = new c2;
$c2->say(); // 輸出 b1 : hello from b1. b0 : hello from b0. c2 : hello from c2.

這個例子的結構和上一個例子十分相似。我們為你準備了b0和b1兩個trait,并定義了一個c1類和c2類分別使用了不同的b1和b0順序。我們定義了一個say方法,分別繼承了b0和b1的say方法并實現了新的功能。在這個例子當中,我們再次可以看到parent的重要性,因為我們的say方法是對于traits和類的呈現,當我們用父類調用時必須非常小心。在上述例子中,c1中使用的繼承是從b0進入到b1,但使用寄生式的c2中,使用的是從b1到b0的繼承。當我們對c1和c2分別調用say方法時,輸出的結果也有明顯的差異。
總體來說,PHP Parent Trait是Trait的一個非常重要的特性,對于我們的代碼復用和組合方面有非常強大的作用。不過,在使用Parent Trait的時候,為了保證代碼的正確性,我們需要嚴格遵守Trait的繼承關系,才能更好的發揮parent的作用。