亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php中trait定義用法和接口的區別詳解

2020-03-22 18:34:11
字體:
來源:轉載
供稿:網友
自PHP5.4.0起,PHP實現了一種代碼復用的方法,稱為Trait。因為PHP是單繼承,當你需要多個區別的特性,就不得不去組合多個基類,Trait出現后就避免了這些問題,Trait的優勢就是可以隨意組合,而且代碼清晰。本文主要介紹了關于PHP中的trait,需要的朋友可以參考下。

前言

之前的一個同事換工作,在面試被問到了 PHP 的 trait 。因為沒用過, 所以沒答好,我大概是用過幾次的,想了想整理了以下的總結。

trait

trait 是在一些類(Class)的應該具備的特定的屬性或方法,而同父級的另外一些類應該避免包含這些屬性和方法情況下使用的.

當然, 這也和開發者對類的抽象能力有關, 有些抽象能力好的, 可以減少對 trait 的使用 但是這種情況應該是無法避免的 不然 trait 出現就毫無意義了.

還有一種情況, 就是使用 trait 的時候, 可以起到的約束開發者的作用, 提醒開發者注意需要在開發的過程中調用 trait 的某些屬性和方法.

同事則提出了一個好問題, 接口(interface) 不也是這個作用么?

不急, 讓我們先看個例子:

比如你要收集網站上各類數據, 開發了 Spider 類. Spider 有個方法叫 request() 負責請求.

<?php namespace XWSoul/Network;html' target='_blank'>class Spider{ public function request($url) { //do sth. }}

但是采集數據的過程中, 有些網站對蜘蛛敏感有些則不. 對于敏感的網站, 我們給出了一個使用代理的解決方案. 但是使用代理是會影響抓取速度的. 這就產生了 Spider 的子類有些需要用代理, 而能不用代理則盡量不用的情況.

于是這個時候我們新增了一個 trait Proxy:

<?php namespace XWSoul/Network;trait Proxy{ protected $isProxy = false; public function useProxy($proxy) { //do sth proxy setups. $this->isProxy = true; return $this; } public function request($url) { if (!$this->isProxy) {  throw new Exception("Please using proxy."); } //do sth. return parent::request($url); }}

trait 重寫了 Spider 的 request() 方法, 限定了在沒有調用代理的情況下調用會拋出異常.

回到之前的問題, trait 這樣的用法和 接口(interface) 有什么區別?

接口的約束是前置的是定義初始就必須實現的, 他可以約束方法的實現卻無法約束方法的調用, trait 是一種后置的調用, 他已經實現了方法, 關鍵的是, 他只對調用了自身的類產生約束(廢話一句), 而對沒有調用自身的類不產生影響(再一句廢話), 同時他是可復用的, 而且沒有破壞 Spider 類自身的實現增加, Spider 還是那個 Spider.

后話

有人可能決定 另外實現一個 request 比如叫, proxyRequst 不就完了么? 你說的好有道理…然是如果我使用了不一樣的 代理具體對請求上有細節差異怎么辦呢? 在代碼里不停的 if if if 么? trait 如此清爽的方案 為何要放棄呢?

以上就是php中trait定義用法和接口的區別詳解的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠干狠狠久久| 欧美一级大片在线免费观看| 日韩av在线免费观看| 国产99久久久欧美黑人| 色爱精品视频一区| 国产午夜精品一区理论片飘花| 国产自产女人91一区在线观看| 91精品国产色综合久久不卡98| 精品久久久久久久久久久久久久| 国产精品高潮呻吟视频| 亚洲一区二区三区香蕉| 日韩av在线直播| 亚洲精品免费一区二区三区| 日产精品99久久久久久| 欲色天天网综合久久| 国产精品9999| 丝袜一区二区三区| 欧美大片在线影院| 一区二区三区国产在线观看| 亚洲精品免费网站| 日本午夜精品理论片a级appf发布| 国产精品欧美激情| 欧美一区二区三区免费观看| 欧美在线影院在线视频| 亚洲精品97久久| 欧美大片欧美激情性色a∨久久| 精品国产精品自拍| 国产精品揄拍500视频| 性欧美视频videos6一9| 亚洲欧美中文日韩v在线观看| 亚洲天堂av在线免费观看| 中文字幕精品在线| 亚洲欧美一区二区精品久久久| 亚洲精品网址在线观看| 亚洲国产精品va在线观看黑人| 欧美激情综合亚洲一二区| 欧洲成人午夜免费大片| 亚洲视频在线观看网站| 欧美激情乱人伦| 欧美极品在线播放| 成人激情视频在线观看| 亚洲网站在线播放| 亚洲精品日韩欧美| 最新69国产成人精品视频免费| 亚洲美女av电影| 日本久久久久久久久久久| 亚洲欧洲在线看| 亚洲自拍偷拍色片视频| 欧美日韩中国免费专区在线看| 欧美激情视频网址| 精品国产91久久久久久| 91国产视频在线| 成人羞羞国产免费| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲欧美日韩精品| 日韩国产欧美精品在线| 中日韩美女免费视频网站在线观看| 在线看国产精品| 91在线网站视频| 国产精品直播网红| 欧洲一区二区视频| 亚洲人午夜精品免费| 国产成人综合一区二区三区| 91精品视频在线| 久久久久久久久久国产精品| 日本精品性网站在线观看| 欧美电影免费看| 国产精品欧美风情| 日韩成人中文电影| 一区二区中文字幕| 亚洲精品中文字幕有码专区| 久久中文字幕在线视频| 日韩中文字幕在线| 欧美激情久久久久| 91美女片黄在线观看游戏| 日韩欧美在线国产| 日韩欧美在线观看视频| 日本在线观看天堂男亚洲| 亚洲尤物视频网| 欧美激情一区二区三级高清视频| 俺也去精品视频在线观看| 成人网中文字幕| 成人在线中文字幕| 国产国产精品人在线视| 亚洲综合最新在线| 热久久免费国产视频| 午夜欧美不卡精品aaaaa| 欧美伦理91i| 欧美激情亚洲激情| 在线视频一区二区| 爱福利视频一区| 欧美裸体xxxx极品少妇| 亚洲午夜国产成人av电影男同| 亚洲韩国青草视频| 成人欧美一区二区三区在线| 91国产美女在线观看| 国产欧美日韩亚洲精品| 国语自产在线不卡| 日韩高清av一区二区三区| 91福利视频在线观看| 在线免费看av不卡| 国产日韩视频在线观看| 精品毛片三在线观看| 精品久久久久久久久久久久| 欧美日产国产成人免费图片| 91欧美激情另类亚洲| 欧美激情视频一区二区| 狠狠色狠狠色综合日日五| 久久免费福利视频| 91久久精品在线| 国产亚洲欧美另类中文| 欧美视频在线免费看| 欧美性xxxx极品高清hd直播| 91在线视频导航| 视频在线观看一区二区| 亚洲欧洲日本专区| 欧美日韩色婷婷| 亚洲人精品午夜在线观看| 久久免费国产精品1| 亚洲精品电影网站| 国产精品美女免费看| 91免费高清视频| 国内偷自视频区视频综合| 欧美国产日韩精品| 国产精品久久久久久久久久| 亚洲视频精品在线| 国内精品美女av在线播放| 亚洲国产精品yw在线观看| 久久久99免费视频| 国产精品欧美一区二区| 成人日韩在线电影| 国产亚洲精品成人av久久ww| 欧美激情一区二区三区成人| 国产精品久久色| 欧美日韩黄色大片| 欧美重口另类videos人妖| 欧美另类99xxxxx| 亚洲国产精品福利| 欧美老女人在线视频| 久久精品91久久香蕉加勒比| 最近2019中文字幕一页二页| 中文字幕亚洲二区| 91国产美女在线观看| xvideos亚洲| 久久久久国产精品www| 成人免费视频在线观看超级碰| 欧美自拍视频在线| 2018中文字幕一区二区三区| 91精品视频免费| 91香蕉电影院| 亚洲淫片在线视频| 欧美与黑人午夜性猛交久久久| 欧美黄色片视频| 欧美日韩亚洲视频| 亚洲一级片在线看| 国产精品美女免费视频| 午夜精品久久久久久久99热| 亚洲精品视频免费在线观看| 日韩在线视频中文字幕| 2018中文字幕一区二区三区| 欧美大片在线免费观看| 日韩网站免费观看| 在线观看国产成人av片| 亚洲一区二区国产|