bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

traits和interfaces的區別是什么-創新互聯

創新互聯www.cdcxhl.cn八線動態BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

成都創新互聯公司長期為1000+客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為西夏企業提供專業的成都網站設計、做網站,西夏網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。

traits和interfaces的區別是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

interface我們在大型項目開發中使用,用于約束團隊協作的,interface接口規定沒有定義的函數,其他開發人員繼承,必須在按照里面的名稱進行定義,不能少一個函數也不能多一個函數,這樣就能約束和管理其他開發者。

PHP是單繼承的語言,在PHP 5.4 Traits出現之前,PHP的類無法同時從兩個基類繼承屬性或方法。php的Traits和Go語言的組合功能有點類似,

通過在類中使用use關鍵字聲明要組合的Trait名稱,而具體某個Trait的聲明使用trait關鍵詞,Trait不能直接實例化。

traits與interfaces的區別是:

1、trait看上去更像是為了代碼的復用而寫的一個小插件,它類似于include,可以用use放在類中間,讓trait里面定義的方法作為class的一部分,本身不能直接實例化。

2、interface里面的方法都是虛擬的,需要在繼承的時候對這些方法進行重定義。也就是說,方法是說明性質的,并沒有實際操作,而你在繼承的時候,需要實現這些方法,不然就會出錯,而且不能缺失。interface經常用于架構的時候,對一個實例所擁有的屬性和方法進行抽象定義。簡單來講類似一個協議,是老板下達的任務。你要繼承的話,必須滿足這個協議,也就是完成老板下達的任務。

<?php
trait MyTrait
{
    protected $var = 'MyTrait_var';
    protected $var1 = 'MyTrait_var';
 
    function __construct()
    {
        echo $this->var."</br>";
    }
 
    function a()
    {
        echo "a"."</br>";
    }
}
 
interface MyInterface
{
    function __construct();
    function b();
}
 
abstract class MyAbstract
{
    protected $var2 = 'MyAbstract_var';
    use MyTrait;
 
    function b()
    {
        echo "b"."</br>";
    }
}
 
class MyClass extends MyAbstract implements MyInterface
{
    protected $var3 = 'MyClass_var';
    function c()
    {
        echo "c"."</br>";
    }
}
 
$class = new MyClass();
$class->a();
$class->b();
$class->c();

以上代碼中,MyAbstract中的function b()也可以放在MyClass中,或者由MyAbstract實現接口MyInterface

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯-成都網站建設公司行業資訊頻道,感謝您對創新互聯的支持。

本文標題:traits和interfaces的區別是什么-創新互聯
文章網址:http://vcdvsql.cn/article6/dcodog.html

成都網站建設公司_創新互聯,為您提供網站改版、網站維護、品牌網站建設微信小程序網站導航企業建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化