批改狀態(tài):合格
老師批語:
<?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.'在學(xué)習(xí)'.$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 { //導(dǎo)入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>';//直接調(diào)用父類 //因為父類與trait中分別有同名的study()方法 //子類調(diào)用study()方法時,會優(yōu)先調(diào)用trait中的study()方法 $student = new Student(); echo $student->game().'<br>'; echo $student->music().'<br>'; echo $student->hobby().'<hr>'; //調(diào)用trait類中的函數(shù)方法,實現(xiàn)代碼復(fù)用 $study = new Study('小軍'); echo $study->game('cs').'<br>'; echo $study->music('jay').'<br>'; echo $study->hobby('看電影').'<hr>'; ?>
要理解子類中的$this->name是指父類中的$name,父類與trait中分別有同名函數(shù)優(yōu)先調(diào)用trait中的函數(shù)
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號