3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
Traits 是 PHP 5.4 之後推出的功能,用來做 Mixin 的多重繼承 在進行物件導向的開發時,會把一些可以reuse的方法抽出寫成另一個類別,要使用時再繼承該類別。但當這樣子的類別一多,可能就會遇到一個類別為了特定function而不斷繼承,此時 Traits 就可以派上用場。 範例 1.基本使用 trait sayAction { public $x = 3; function sayHello() { echo "Hello" . PHP_EOL; } function sayName($name) { echo "My name is ${name}" . PHP_EOL; } } class leagcy { //dosomething } class product extends leagcy { use sayAction; } $product = new product(); $product->sayHello(); $product->sayName('Johnson'); echo $product->x . PHP_EOL; 2.Parent class leagcy { function sayHello() { echo 'Leagcy Hello' . PHP_EOL; } } trait sayAction { function sayHello() { parent::sayHello(); echo "Hello" . PHP_EOL; } } class product extends leagcy { use sayAction; } $product = new product(); $product->sayHello(); 3.同時使用多個 Trait class leagcy { //dosomething } trait sayAction { function sayHello() { echo "Hello" . PHP_EOL; } } trait goAction { function goDie() { echo "Die" . PHP_EOL; } } class product extends leagcy { use sayAction,goAction; } $product = new product(); $product->sayHello(); $product->goDie(); 4.利用Trait 繼承 Trait class leagcy { //dosomething } trait sayAction { function sayHello() { echo "Hello" . PHP_EOL; } } trait goAction { function goDie() { echo "Die" . PHP_EOL; } } trait execAction { use sayAction,goAction; } class product extends leagcy { use execAction; } $product = new product(); $product->sayHello(); $product->goDie(); 5.Abstract class leagcy { //dosomething } trait sayAction { abstract public function sayHello(); } class product extends leagcy { use sayAction; function sayHello() { echo "Hello" . PHP_EOL; } } $product = new product(); $product->sayHello(); 6.Static class leagcy { //dosomething } trait sayAction { function calCount() { static $count = 0; $count++; echo $count . PHP_EOL; } static function staticFnc() { echo "Static" . PHP_EOL; } } class product extends leagcy { use sayAction; } class other { use sayAction; } product::staticFnc(); $product1 = new product(); $product2 = new product(); $product1->calCount(); $product2->calCount(); $other = new other(); $other->calCount(); Categories: PHP 分類 Android AngularJS API Blueprint Chrome Database MySQL DataStructure Docker Editor Vim Firefox Git GitLab Google API Hadoop Language Go Java JavaScript jQuery jQueryChart Node.js Vue PHP Laravel ZendFramework Python Mac Network Cisco DLink Juniper Oauth Server Apache Share Unix FreeBSD Linux WebDesign Bootstrap CSS HTML Wordpress Search 搜尋關鍵字:

本文由blogjohnsonluorg提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦