ホームページ >バックエンド開発 >PHPチュートリアル >Traits を使用して PHP で多重継承を実装するにはどうすればよいですか? (コード例)

Traits を使用して PHP で多重継承を実装するにはどうすればよいですか? (コード例)

青灯夜游
青灯夜游オリジナル
2019-02-22 11:20:563170ブラウズ

PHP は多重継承をサポートしていませんが、インターフェイスまたは特性属性を使用して多重継承を使用できます。前回の記事 [PHP はインターフェイスを使用して多重継承を実装する方法は何ですか?] ]ではインターフェースを利用して多重継承を実装する方法を紹介しましたが、次の記事ではTrait機能を理解し、Trait機能を使ってPHPで多重継承を実装する方法を紹介しますので、皆様のお役に立てれば幸いです。 。

Traits を使用して PHP で多重継承を実装するにはどうすればよいですか? (コード例)

特性とは何ですか?

Trait は PHP 5.4 で導入された新しい概念で、PHP における多重継承の制限を取り除きます。 PHP 5.4 より前の PHP では単一継承と複数インターフェイスがサポートされていましたが、Traits では多重継承ができないという制限がなくなりました。 [ビデオチュートリアルの推奨: PHP チュートリアル]

Traits は、単一継承言語 (PHP など) でコードを再利用するためのメカニズムです。その主なコンセプトはコードの再利用性です。 PHP のような単一継承のみをサポートする言語では、トレイトは非常に便利なようです。したがって、トレイトを使用する主な理由は、多重継承またはコードの再利用性の利点を得るためにあります。

#特性属性を使用して多重継承を実装する

1. クラスと特性属性を使用する

基本文型:

class child_class_name extends parent_class_name {
    use trait_name;
    ...
    ...
    child_class functions
}

コード例:

<?php 
header("content-type:text/html;charset=utf-8");   
// Hello类
class Hello  { 
  public function sayhello() { 
     echo "<br>Hello"; 
  } 
} 
  
// Phpzww 特性
trait  Phpzww{ 
  public function sayfor() { 
     echo " php中文网"; 
  } 
} 
  
class Sample extends Hello { 
   use Phpzww; 
   public function demo() { 
      echo "<br><br>学习编程!"; 
  }  
} 
  
$test = new Sample(); 
$test->sayhello(); 
$test->sayfor(); 
$test->demo(); 
?>

出力:

Traits を使用して PHP で多重継承を実装するにはどうすればよいですか? (コード例)

コード説明: 上記の

code 、「traits」は親クラスで使用されます。関数sayhello()を含む「Hello」というクラスと、関数demo()を含む「Phpzww」というトレイトがあり、「Sample」というサブクラスがあり、これを作成しています。「」という名前のクラスのオブジェクトです。 test" を作成し、それを使用してクラス属性と特性属性内のすべての関数を呼び出します。

2. 複数の特性機能を使用する

基本的な文構造:

class child_class_name {
    use trait_name;
    ...
    ...
    child_class functions
}

コード例:

<?php 
header("content-type:text/html;charset=utf-8");   
// 特性:Hello 
trait Hello{ 
  public function sayhello() { 
     echo "<br>Hello"; 
  } 
} 
  
// 特性:Phpzww
trait  Phpzww{ 
  public function sayfor() { 
     echo " php中文网!"; 
  } 
} 
  
class Sample { 
  use Hello; 
  use Phpzww; 
  public function Helloforphp() { 
      echo "<br><br>欢迎学习PHP!"; 
   }  
} 
  
$test = new Sample(); 
$test->sayhello(); 
$test->sayfor(); 
$test->Helloforphp(); 
?>

出力:

Traits を使用して PHP で多重継承を実装するにはどうすればよいですか? (コード例)

上記のコードでは、複数の特性属性を使用して多重継承を実装しています。 「Hello」と「Phpzww」という名前の 2 つの機能があり、それぞれ Sayhello() 関数と Sayfor() 関数が含まれています。また、Helloforphp() 関数を含む「sample」サブクラスもあります。 「test」という名前のクラスのオブジェクトを作成し、それを使用して特性属性のすべての関数を呼び出します。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がTraits を使用して PHP で多重継承を実装するにはどうすればよいですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。