1. 単純なオブジェクトの作成
コードをコピー コードは次のとおりです:
//クラスのスコープ Final: willサブクラスを防止 このフィールドを書き換えます
//メソッド抽象のスコープ: 親クラスで宣言、サブクラスで実装
//クラスを定義します:
class Employee{
//フィールドを定義します
private $name;
protected $title;
public $wage;
const PI = 3.1415926; = 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->gt;$property = $value;
function __get($property){
return $this->$property;
}
}
//クラス継承 Manager は Employee を継承
class Manager は Employee を拡張 {
function __construct(){
//Call親クラスのコンストラクターまたはメソッド
parent::__construct();
echo "マネージャー コンストラクター";
}
//オブジェクトを作成します
$employee = new Employee();
$employee->wage = 10000;
//定数
echo を使用します
//メソッド
を呼び出します>$employee->lockIn();
$manager = new Employee();
//instanceof は、オブジェクトがクラスのインスタンスであるか、クラスのサブクラスであるか、または特定のインターフェイスを実装しているかを決定します
if($manager instanceof Employee ) echo "Yes";
2、高度な OO 機能
(1) オブジェクトの複製
コードをコピー
class ClassA{ private $name; private $title; 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 = new ClassA(); setName( "名前A");
$classA->setTitle("タイトルA");
$classB = クローン
$classB->setName("名前B"); echo $classA->getName(),"
",$classA->getTitle(),"
";
echo $classB->getName(),"
;" ,$classB->getTitle(),"
";
/* 出力
クローンされました
NameA
TitleA
NameB
TitleA
* /
(2) インターフェース
コードをコピー
コードは次のとおりです:
//Interface
interface IPillage{
function method();
}
class ClassC extends ClassAimplements {
$classC = new ClassC(); $classC->method(); //インターフェースメソッド
(3) 抽象クラス
コードをコピー
コードは次のとおりです:
//抽象クラスはインスタンス化できず、インスタンス化のみが可能なクラスです。他のクラスが継承する基本クラスとして使用されます。
abstract class BaseClass{
protected $name;
class ChileClass extends BaseClass {
function Method(){
echo "メソッド";
$child->method(); 注: 密接に関連するオブジェクトによって採用されるモデルを作成したい場合は、抽象クラスを使用できます。無関係な多数のオブジェクトに採用される機能を作成する場合は、インターフェイスを使用します。
動作を複数のソースから継承する必要がある場合は、インターフェイスを使用します。 PHP は複数のインターフェイスを継承できますが、複数の抽象クラスを拡張することはできません。すべてのクラスが共通の動作実装を共有することがわかっている場合は、抽象クラスを使用し、その中でその動作を実装します。動作をインターフェイスに実装することはできません。