ホームページ  >  記事  >  バックエンド開発  >  PHP オブジェクト指向実装コード_PHP チュートリアル

PHP オブジェクト指向実装コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:42:54750ブラウズ

1. 簡単なオブジェクトの作成

コードをコピーします コードは次のとおりです:

//クラスのスコープfinal: サブクラスがこのフィールドを書き換えるのを防ぎます
// メソッドabstractのスコープ: 宣言されています親クラスで、サブクラスに実装されます
//クラスを定義します:
class Employee{
private $name;
public $wage;
//Constant
const PI = 3.1415926;
//静的メンバー変数
private static $visitors = 0;
//コンストラクターを定義する
function __construct(){
//静的メンバー変数を使用する
self::$visitors++;
echo "constructor"; /デストラクター関数を定義します
function __destruct(){
echo "destruct";
//宣言メソッド
public function ClockIn(){
//フィールドを使用します
echo "Member $this->name";
//オブジェクトが所有していない属性 (プライベート フィールドなど) にアクセスする場合、オブジェクトが __get メソッドと __set メソッドを使用する場合、__get メソッドまたは __set メソッドが自動的に呼び出されます
function __set($property,$value){
$ this->$property = $value;
}
function __get($property){
return $this->$property;
}
}
//クラス Manager の継承 Employee
class Manager 拡張{
function __construct(){
//親クラスのコンストラクターまたはメソッドを呼び出します
parent::__construct();
echo "マネージャー コンストラクター"
}
//作成オブジェクト
$employee = new Employee();
$employee->wage = 10000;
//定数
echo Employee::PI を使用します
$employee->lockIn(); = new Employee ();
//instanceof は、オブジェクトがクラスのインスタンスであるか、クラスのサブクラスであるか、または特定のインターフェイスを実装しているかを決定します
if($managerinstanceof Employee ) echo "Yes"


2,高度な OO 機能
( 1) オブジェクトの複製



コードをコピーします

コードは次のとおりです:

//オブジェクトの複製
class ClassA{
private $name;
public function setName; name){ $this->name = $name; } function getName(){ return $this->name;
}
public function setTitle($title){
$this->title = $title;
}
public function getTitle(){
return $this->title;
}
function __clone(){
echo "私はクローンされました"
}
}
$ classA = 新しいクラスA();
$classA->setTitle("タイトルA");
$classB = クローン$classB->setName(" NameB");
echo $classA->getName(),"
",$classA->getTitle(),"
";
echo $classB->getName(),"
",$ classB->getTitle(),"
";
/* 出力
クローンされました
NameA
TitleA
NameB
TitleA
*/


(2) インターフェース



コードをコピー

コードは次のとおりです:


//Interface
interface IPillage{
function method();
}
class ClassC extends ClassAimplements IPillage {
function method(){
echo "interface method" ; } } $classC = new ClassC(); $classC->method();
//インターフェイスメソッド


コードをコピーします

コードは次のとおりです:


//抽象クラスはインスタンス化できません
class ChileClass extends BaseClass {
function method(){
echo "method";
}
}
$child = new ChileClass(); );
//出力メソッド


注:
いくつかの密接に関連するオブジェクトによって採用されるモデルを作成したい場合は、抽象クラスを使用できます。無関係な多数のオブジェクトに採用される機能を作成する場合は、インターフェイスを使用します。
動作を複数のソースから継承する必要がある場合は、インターフェイスを使用します。 PHP は複数のインターフェイスを継承できますが、複数の抽象クラスを拡張することはできません。
すべてのクラスが共通の動作実装を共有することがわかっている場合は、抽象クラスを使用し、その中でその動作を実装します。動作をインターフェイスに実装することはできません。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/320862.html技術記事 1. 単純なオブジェクト作成のコピー コードは次のとおりです。 //クラス Final のスコープ: サブクラスによるこのフィールドの書き換えを防止します。 // メソッド Abstract のスコープ: 親クラスで宣言され、サブクラスで実装されます/...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。