20191125PHP抽象クラス、インタフェース、および魔法の方法

抽象クラス

他のクラスが継承するためには、インスタンス化することはできません。使用抽象(抽象)。抽象メソッドは、抽象クラスは、抽象メソッドを持っていない可能性があり、抽象クラスでなければなりません。

インターフェイスインターフェイスは、特別な抽象クラスです。

例えば:

<?PHP
 // 抽象クラス
抽象 クラス人{
  関数RUN(){
   エコー "..................とruningて" ; 
 } 
 抽象 関数スタート(); 
} 

クラス男の子延び人{
     関数スタート(){
         エコー「サブクラス方法スタート" ; 
    } 
} 

$ = 新新)(ボーイズに;
 $ - > RUN(); 

// 書き込みインターフェース

インターフェース学生{
     関数名();
     機能研究(); 
}

クラス STUの実装の学生{
     関数名(){
         エコー「姓名」
    } 
    関数の研究(){
         エコー "学习" 
    } 
} 

$ Bの = 新しいSTU()。
B $ > - ;研究()
================================================== ================

マジック)(__cloneをクローン化しました。

<?PHP
 // 对象克隆和魔术方法__clone 
クラス人{
     VARの $名;
    VaRの $の年齢;
    VaRの $カウント = 0 ;
 関数 __construct($名$歳){
      $この - >名前= $名;
     この$ >年齢= - $年齢を
 } 
 関数__clone(){
      $この - > カウント + = 1 ; 
 } 
 関数の実行(){
   エコー $この - >名前".................. runingて"。; 
 }
}
 $ A = 新しい新しい人( "ボブ"、23がある);
 $ A - > RUN();
 エコー $ A - > COUNT ;
 $ B = クローン $ A ;   // クローン
$ B - > RUN();
 エコー $ B - > COUNT ;
 $ C = 新しい新しい人( "花"、22がある);
 エコー $ C - > COUNT ;
 $ D = クローン $ B ;
 エコー $ D - > COUNT ;

 

マジックメソッド__get()__set()

<?PHP
 クラス人{
     プライベート $名;
    プライベート $年齢;
    関数 __set($名$値){
         $この - > $名 = $値を
        
    } 
    関数 __get($名){
      返す $この - > $名; 
    } 
    
} 

$ = 新しい人();
$ = "小明">名前を- エコー $ - >名前;

マジックメソッド__call()、__のtoString()

<?PHP
 // __call()、__のtoString()
クラスは、人{
     関数 __call($名$ V ){
         エコー "呼び出すメソッド" $名 "は存在しません。" ; 
    } 
    関数__toString(){
       リターン「I人のクラス情報" ; 
    } 
} 
$ = 新しい新しい人();
 $ - > RUN();
 $ - > STOP();
 エコー $ ;

 魔法の他の方法:

__construct()、クラスコンストラクタ
__destruct()、デストラクタクラス
対象における非アクセスメソッド呼び出し時に呼び出さ__call()、
静的モードによって非アクセスメソッドを呼び出すときに呼び出さ__callStatic()、
__get()は、クラスのメンバ変数取得するときに呼び出され
たクラスのメンバ変数を設定するとき__set()と呼ばれ、
アクセスできなく性質上ISSETを呼び出したときに呼び出され__issetを()、()、または空()
アクセスできないプロパティに設定しないと呼ばれる__unset()、これは、呼び出されたときに()。
__sleep()、シリアライズの実装()、最初はこの関数呼び出しう
__wakeup()、実施アンシリアライズ()、最初は、この関数を呼び出す
(__toString)場合、文字列、クラスは、応答方法としてある
__invoke()、関数呼び出し応答する方法は、オブジェクトのメソッドを呼び出すとき
__set_state()、派生クラスは、この静的メソッドが呼び出されるコールでvar_export()。
__clone()、オブジェクトのコピーが完了したときに呼び出さ
)(__autoload、未定義のクラスをロードしようとする試み
に必要な__debugInfoを()、印刷デバッグ情報

 

 

おすすめ

転載: www.cnblogs.com/syqlwyx/p/11926753.html