亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP、クラスとオブジェクト

Dec 29, 2024 pm 02:42 PM

PHP, Classes and Objects

PHP のクラスとオブジェクト

PHP は Java と同様、オブジェクト指向プログラミングをサポートし、クラスとオブジェクトをコア構(gòu)成要素として使用します。これらの概念を理解することは、PHP をマスターするために不可欠です。このガイドでは、PHP のクラスとオブジェクトについて知っておくべきことをすべて説明します。

クラスの定義

PHP のクラスは、オブジェクトを作成するための設(shè)計(jì)図です。これは、クラスのオブジェクトが持つ構(gòu)造と動(dòng)作を定義します。

構(gòu)文

class ClassName {
    // Properties (Fields)
    // Methods
}

class Car {
    // Properties
    public $color;
    public $model;
    public $year;

    // Methods
    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

オブジェクトの作成

オブジェクトはクラスのインスタンスです。 new キーワードを使用してクラスからオブジェクトを作成します。

構(gòu)文

$objectName = new ClassName();

class Main {
    public function run() {
        $myCar = new Car(); // Creating an object of the Car class
        $myCar->color = "Red";
        $myCar->model = "Tesla";
        $myCar->year = 2022;
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

プロパティとメソッド

プロパティ (フィールドとも呼ばれる) はオブジェクトの狀態(tài)を表し、メソッドはオブジェクトの動(dòng)作を定義します。

プロパティ

プロパティは、オブジェクトのデータを保持する変數(shù)です。

class Car {
    public $color;
    public $model;
    public $year;
}

メソッド

メソッドは、オブジェクトの動(dòng)作を記述するクラス內(nèi)で定義された関數(shù)です。

class Car {
    public $color;
    public $model;
    public $year;

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

コンストラクター

コンストラクターは、オブジェクトがインスタンス化されるときに自動(dòng)的に呼び出される特別なメソッドです。新しく作成されたオブジェクトを初期化します。

デフォルトのコンストラクター

コンストラクターが定義されていない場(chǎng)合、PHP は引數(shù)のないデフォルトのコンストラクターを提供します。

class Car {
    public $color;
    public $model;
    public $year;

    // Default constructor
    public function __construct() {
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

パラメータ化されたコンストラクタ

パラメータ化されたコンストラクターを使用すると、オブジェクトを特定の値で初期化できます。

class Car {
    public $color;
    public $model;
    public $year;

    // Parameterized constructor
    public function __construct($color, $model, $year) {
        $this->color = $color;
        $this->model = $model;
        $this->year = $year;
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

パラメータ化されたコンストラクターの使用

class Main {
    public function run() {
        $myCar = new Car("Red", "Tesla", 2022);
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

コンストラクターのオーバーロード

PHP は Java のようなメソッドのオーバーロードをネイティブにサポートしていませんが、オプションのパラメーターを使用するか、単一のコンストラクター內(nèi)で手動(dòng)で引數(shù)を処理することによって、それをシミュレートできます。

class Car {
    public $color;
    public $model;
    public $year;

    // Simulating constructor overloading
    public function __construct($color = "Unknown", $model = "Unknown", $year = 0) {
        $this->color = $color;
        $this->model = $model;
        $this->year = $year;
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

シミュレートされたオーバーロードされたコンストラクターの使用

class Main {
    public function run() {
        $defaultCar = new Car();
        $defaultCar->displayInfo();

        $myCar = new Car("Red", "Tesla", 2022);
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

PHP のカプセル化、アクセス修飾子、および靜的メンバー

カプセル化

PHP のカプセル化とは、データ (プロパティ) とメソッド (関數(shù)) をクラス內(nèi)にバンドルする方法です。これにより、オブジェクトの內(nèi)部狀態(tài)が外部の干渉や誤用から安全であることが保証されます。

アクセス修飾子

PHP のアクセス修飾子は、プロパティ、メソッド、コンストラクターの可視性とアクセス可能性を制御します。 PHP は 3 つの主要なアクセス修飾子をサポートしています:

  • パブリック: どこからでもアクセス可能。
  • 保護(hù): クラス、サブクラス、および同じパッケージ內(nèi)でアクセス可能です。
  • private: 定義クラス內(nèi)でのみアクセス可能です。

使用例:

class ClassName {
    // Properties (Fields)
    // Methods
}

靜的メンバー

PHP の靜的メンバーは、特定のインスタンスではなくクラス自體に関連付けられます。クラスのオブジェクトを作成せずにアクセスできます。

靜的プロパティ:

靜的プロパティは、クラスのすべてのインスタンス間で共有されます。これらは static キーワードを使用して宣言されます。

class Car {
    // Properties
    public $color;
    public $model;
    public $year;

    // Methods
    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

靜的メソッド:

靜的メソッドは、static キーワードを使用して宣言されます。これらはインスタンスではなくクラスに屬します。

$objectName = new ClassName();

靜的メンバーへのアクセス:

靜的メンバーには、オブジェクトではなくクラス名を使用してアクセスします。

class Main {
    public function run() {
        $myCar = new Car(); // Creating an object of the Car class
        $myCar->color = "Red";
        $myCar->model = "Tesla";
        $myCar->year = 2022;
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

PHP のアクセス修飾子

PHP のアクセス修飾子は、クラス メンバーの可視性を制御し、カプセル化を保証し、アクセス制限を強(qiáng)制します。

アクセス修飾子の種類(lèi)

  1. 公開(kāi)
  2. 保護(hù)されています
  3. プライベート

1.公共

  • アクセス可能場(chǎng)所: どこからでも。
  • 使用法: 広くアクセスできる必要があるメンバーには public を使用します。
class Car {
    public $color;
    public $model;
    public $year;
}

2.保護(hù)されている

  • 次の場(chǎng)所からアクセス可能: クラスおよびそのサブクラス內(nèi)。
  • 使用法: クラス階層內(nèi)でのみアクセスする必要があるメンバーには protected を使用します。
class Car {
    public $color;
    public $model;
    public $year;

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

3.プライベート

  • アクセス元: クラス內(nèi)のみ。
  • 使用法: 定義クラスの外部からアクセスすべきでないメンバーには private を使用します。
class Car {
    public $color;
    public $model;
    public $year;

    // Default constructor
    public function __construct() {
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

PHP の非アクセス修飾子

PHP の非アクセス修飾子は、可視性に影響を與えることなく、クラス メンバーの動(dòng)作を変更します。

非アクセス修飾子の種類(lèi)

  1. 靜的
  2. 決勝
  3. 要約

1.靜的

  • 使用法: インスタンスではなくクラスに屬するプロパティとメソッドを宣言します。
  • 例:
class ClassName {
    // Properties (Fields)
    // Methods
}

2.決勝

  • 使用法: メソッドのさらなる変更やクラスの継承を防ぎます。
  • 変數(shù): PHP は Final 変數(shù)をサポートしません。
  • メソッド: 最終メソッドはオーバーライドできません。
  • クラス: 最終クラスは延長(zhǎng)できません。
  • 例:
class Car {
    // Properties
    public $color;
    public $model;
    public $year;

    // Methods
    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

3. 要約

  • 使用法: 不完全なため、サブクラスで実裝する必要があるクラスとメソッドを宣言します。
  • 抽象クラス: インスタンス化できません。
  • 抽象メソッド: 本體なしで宣言され、サブクラスによって実裝される必要があります。
  • 例:
$objectName = new ClassName();

PHP およびアクセス修飾子の継承

継承

PHP における継承は、あるクラス (サブクラス) が別のクラス (スーパークラス) のプロパティとメソッドを継承できるメカニズムです。これにより、コードの再利用が容易になり、クラス間の階層関係の作成が可能になります。

継承の構(gòu)文

class Main {
    public function run() {
        $myCar = new Car(); // Creating an object of the Car class
        $myCar->color = "Red";
        $myCar->model = "Tesla";
        $myCar->year = 2022;
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

class Car {
    public $color;
    public $model;
    public $year;
}

この例では:

  • Animal は、プロパティ $name とメソッド Eat() を持つスーパークラスです。
  • Dog は、Animal から $name と Eat() を継承し、獨(dú)自のメソッド bark() を追加したサブクラスです。

継承におけるアクセス修飾子

PHP のアクセス修飾子は、サブクラスやプログラムの他の部分のクラス メンバーの可視性を決定します。これらは継承において重要な役割を果たします。

通常の屬性とメソッドのアクセス修飾子

  • パブリック: どこからでもアクセス可能。
  • 保護(hù): クラス、サブクラス內(nèi)、および同じパッケージ內(nèi)でアクセス可能です。
  • private: 宣言されているクラス內(nèi)でのみアクセスできます。
class Car {
    public $color;
    public $model;
    public $year;

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

靜的屬性とメソッドのアクセス修飾子

PHP の靜的メンバーは、特定のインスタンスではなくクラスに関連付けられます。これらは、継承における非靜的メンバーと同じアクセス ルールに従います。

class Car {
    public $color;
    public $model;
    public $year;

    // Default constructor
    public function __construct() {
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

靜的メソッドは継承されますか?

靜的メソッドは PHP で継承されますが、インスタンス メソッドと同じ意味でオーバーライドすることはできません。サブクラスが同じ名前の靜的メソッドを定義すると、親クラスの靜的メソッドが非表示になります。

class ClassName {
    // Properties (Fields)
    // Methods
}

抽象メソッドのアクセス修飾子

PHP の抽象メソッドは抽象クラスで定義する必要があります。スーパークラスでの抽象メソッドの可視性によって、サブクラスでのその抽象メソッドの可視性が決まります。サブクラスは、同じか、より制限の少ないアクセス修飾子を持つ抽象メソッドを?qū)g裝する必要があります。

class Car {
    // Properties
    public $color;
    public $model;
    public $year;

    // Methods
    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

Final 屬性とメソッドのアクセス修飾子

PHP の Final メソッドはサブクラスでオーバーライドできません。また、Final クラスを拡張することもできません。

  • 最終メソッド: メソッドのオーバーライドを防ぎます。
  • 最終クラス: 継承を防止します。
$objectName = new ClassName();

PHP で最上位クラスを宣言するための構(gòu)文

PHP では、トップレベル クラス (他のクラス內(nèi)にネストされていないクラス) の宣言は、キーワードの特定の順序に従います。宣言には、アクセス修飾子、抽象キーワードまたは最終キーワード、クラス キーワードを含めることができます。

使用できるキーワード:

  1. アクセス修飾子: public
  2. クラスタイプ: 抽象または最終

注文:

class ClassName {
    // Properties (Fields)
    // Methods
}

構(gòu)文:

class Car {
    // Properties
    public $color;
    public $model;
    public $year;

    // Methods
    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

重要な注意事項(xiàng):

  1. 何も指定されていない場(chǎng)合、PHP はデフォルトのアクセス修飾子として public を想定します。
  2. クラスを同時(shí)に抽象クラスと最終クラスにすることはできません。
  3. protected アクセス修飾子と private アクセス修飾子は、最上位クラスでは許可されません。

例:

$objectName = new ClassName();

PHP のクラスで屬性を宣言するための構(gòu)文

使用できるキーワード:

  1. アクセス修飾子: public、protected、private
  2. 靜的修飾子: 靜的
  3. 不変修飾子: 読み取り専用 (PHP 8.1 で導(dǎo)入)

注文:

class Main {
    public function run() {
        $myCar = new Car(); // Creating an object of the Car class
        $myCar->color = "Red";
        $myCar->model = "Tesla";
        $myCar->year = 2022;
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

構(gòu)文:

class Car {
    public $color;
    public $model;
    public $year;
}

重要な注意事項(xiàng):

  1. アクセス修飾子が指定されていない場(chǎng)合、屬性はデフォルトで public になります。
  2. 靜的屬性はインスタンスではなくクラスに屬します。
  3. readonly 屬性は、宣言時(shí)またはコンストラクター (PHP 8.1 ) で 1 回だけ初期化できます。

例:

class Car {
    public $color;
    public $model;
    public $year;

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

PHP のクラスでメソッドを宣言するための構(gòu)文

使用できるキーワード:

  1. アクセス修飾子: public、protected、private
  2. 靜的修飾子: 靜的
  3. 最終修飾子: Final
  4. 抽象修飾子: 抽象

注文:

class Car {
    public $color;
    public $model;
    public $year;

    // Default constructor
    public function __construct() {
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

構(gòu)文:

class Car {
    public $color;
    public $model;
    public $year;

    // Parameterized constructor
    public function __construct($color, $model, $year) {
        $this->color = $color;
        $this->model = $model;
        $this->year = $year;
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

重要な注意事項(xiàng):

  1. アクセス修飾子が指定されていない場(chǎng)合、メソッドはデフォルトで public になります。
  2. 靜的メソッドはインスタンスではなくクラスに屬します。
  3. Final メソッドはサブクラスでオーバーライドできません。
  4. 抽象メソッドは抽象クラスで宣言する必要があり、本體を持つことはできません。

例:

class Main {
    public function run() {
        $myCar = new Car("Red", "Tesla", 2022);
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

PHP の抽象クラス

PHP の抽象クラスは、他のクラスのブループリントを定義するために使用される Java の抽象クラスに似ています。これらには、抽象メソッド (実裝のないメソッド) と具象メソッド (実裝のあるメソッド) の両方が含まれます。抽象クラスは、abstract キーワードを使用して宣言され、直接インスタンス化することはできません。


1. 抽象クラスの概要

抽象クラスは、派生クラスの基本クラスとして機(jī)能します。サブクラスの共通の動(dòng)作を定義すると同時(shí)に、それらのサブクラスでの特定のメソッドの実裝を許可します。


2. 抽象クラスの宣言

PHP で抽象クラスを宣言するには、class キーワードの前に abstract キーワードを使用します。

例:

class ClassName {
    // Properties (Fields)
    // Methods
}

3. 抽象メソッド

抽象メソッドは抽象クラスで定義されていますが、本體はありません。サブクラスはすべての抽象メソッドを?qū)g裝する必要があります。

例:

class Car {
    // Properties
    public $color;
    public $model;
    public $year;

    // Methods
    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

4. 具體的な方法

抽象クラスの具象メソッドには本體があり、そのままサブクラスに継承することも、オーバーライドすることもできます。

例:

$objectName = new ClassName();

5. サブクラスの作成

抽象クラスのサブクラスは、そのサブクラスが抽象として宣言されていない限り、そのすべての抽象メソッドを?qū)g裝する必要があります。

例:

class Main {
    public function run() {
        $myCar = new Car(); // Creating an object of the Car class
        $myCar->color = "Red";
        $myCar->model = "Tesla";
        $myCar->year = 2022;
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

6. 抽象クラスのインスタンス化

抽象クラスは直接インスタンス化できません。インスタンスを作成するには、具象サブクラスを使用する必要があります。

例:

class Car {
    public $color;
    public $model;
    public $year;
}

7. 抽象クラスのコンストラクター

抽象クラスはコンストラクターを持つことができ、そのコンストラクターはサブクラスがインスタンス化されるときに呼び出されます。

例:

class Car {
    public $color;
    public $model;
    public $year;

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

8. フィールドとメソッドを備えた抽象クラス

抽象クラスにはインスタンス変數(shù)と具象メソッドを含めることができ、サブクラスに再利用可能な機(jī)能を提供します。

例:

class Car {
    public $color;
    public $model;
    public $year;

    // Default constructor
    public function __construct() {
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

9. 抽象クラスの靜的メソッド

抽象クラスには靜的メソッドを含めることができます。靜的メソッドはクラスに屬しており、インスタンス化せずに呼び出すことができます。

例:

class ClassName {
    // Properties (Fields)
    // Methods
}

PHP で抽象クラスを宣言するための構(gòu)文

使用できるキーワード:

  1. 要約
  2. public、protected、private (アクセス修飾子)

注文:

class Car {
    // Properties
    public $color;
    public $model;
    public $year;

    // Methods
    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

例:

抽象メソッドと具象メソッドを備えた抽象クラス

$objectName = new ClassName();

フィールドと最終メソッドを含む抽象クラス

class Main {
    public function run() {
        $myCar = new Car(); // Creating an object of the Car class
        $myCar->color = "Red";
        $myCar->model = "Tesla";
        $myCar->year = 2022;
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

重要な注意事項(xiàng):

  1. 抽象クラスは直接インスタンス化できません。
  2. 抽象メソッドは非抽象サブクラスによって実裝する必要があります。
  3. すべての抽象メソッドを?qū)g裝していないサブクラスも抽象として宣言する必要があります。
  4. 抽象クラスの具象メソッドは、サブクラスがオーバーライドするオプションです。
  5. 抽象クラスにはコンストラクター、プロパティ、定數(shù)を含めることができます。
  6. 抽象クラスは、そのメソッドとプロパティに対して任意の可視性修飾子を使用できます。

PHP のインターフェース

PHP のインターフェイスは、それを?qū)g裝するクラスのコントラクトを定義します。これはクラスが実裝する必要があるメソッドを指定しますが、メソッド実裝自體は提供しません。インターフェイスにより、より柔軟でモジュール化されたコードが可能になり、継承階層に関係なく、クラスが共通のメソッド シグネチャ セットに準(zhǔn)拠できるようになります。


1. インターフェースの概要

PHP のインターフェイスは抽象クラスに似ていますが、実裝せずにメソッド シグネチャのみを定義できます。インターフェイスを?qū)g裝するクラスは、インターフェイスで宣言されたすべてのメソッドの実裝を提供する必要があります。クラスは複數(shù)のインターフェイスを?qū)g裝できるため、インターフェイスは PHP の動(dòng)作の多重継承サポートの重要な部分になります。


2. インターフェースの宣言

インターフェイスを宣言するには、interface キーワードを使用します。インターフェイスには、メソッド宣言 (メソッド本體は不可)、定數(shù)、および抽象メソッドのみを含めることができます。

例:

class Car {
    public $color;
    public $model;
    public $year;
}

3. インターフェースの実裝

インターフェースを?qū)g裝するクラスは、インターフェースで宣言されたすべてのメソッドの実裝を提供する必要があります。クラスはカンマで區(qū)切って複數(shù)のインターフェースを?qū)g裝できます。

例:

class Car {
    public $color;
    public $model;
    public $year;

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

4. インターフェースメソッドの署名

インターフェース內(nèi)のメソッドは本體を持つことができず、パブリックである必要があります。クラスがインターフェイスを?qū)g裝する場(chǎng)合、メソッド シグネチャを含め、インターフェイスで宣言されたとおりにこれらのメソッドを正確に実裝する必要があります。

例:

class Car {
    public $color;
    public $model;
    public $year;

    // Default constructor
    public function __construct() {
    }

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

5. 複數(shù)のインターフェースの実裝

PHP のクラスは複數(shù)のインターフェースを?qū)g裝できます。これにより、クラスがさまざまなコントラクトに準(zhǔn)拠できるシステムをより柔軟に設(shè)計(jì)できるようになります。

例:

class ClassName {
    // Properties (Fields)
    // Methods
}

6. インターフェース定數(shù)

インターフェースには定數(shù)を含めることができます。これらの定數(shù)は自動(dòng)的にパブリックになり、インターフェイスを?qū)g裝する任意のクラスからアクセスできます。

例:

class Car {
    // Properties
    public $color;
    public $model;
    public $year;

    // Methods
    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

7. インターフェースの継承

インターフェースは別のインターフェースを拡張できます。これは、子インターフェイスが親インターフェイスからすべてのメソッド (シグネチャ) を継承し、新しいメソッドを追加することもできることを意味します。子インターフェースを?qū)g裝するクラスは、親インターフェースと子のインターフェースの両方からすべてのメソッドを?qū)g裝する必要があります。

例:

$objectName = new ClassName();

8. インターフェースの靜的メソッド

インターフェイスには靜的メソッドを含めることはできません。インターフェイスで宣言されるすべてのメソッドはインスタンス メソッドである必要があります。インターフェースは実裝クラスのインスタンスレベルのコントラクトを定義するため、インターフェースでは靜的メソッドは許可されません。


PHP でインターフェイスを宣言および実裝するための構(gòu)文

使用できるキーワード:

  1. インターフェース
  2. 公開(kāi)

注文:

class Main {
    public function run() {
        $myCar = new Car(); // Creating an object of the Car class
        $myCar->color = "Red";
        $myCar->model = "Tesla";
        $myCar->year = 2022;
        $myCar->displayInfo();
    }
}

$main = new Main();
$main->run();

例:

メソッドシグネチャを使用したインターフェイス

class Car {
    public $color;
    public $model;
    public $year;
}

複數(shù)の実裝とのインターフェイス

class Car {
    public $color;
    public $model;
    public $year;

    public function displayInfo() {
        echo "Model: " . $this->model . "\n";
        echo "Color: " . $this->color . "\n";
        echo "Year: " . $this->year . "\n";
    }
}

重要な注意事項(xiàng):

  1. インターフェイス メソッド: インターフェイス內(nèi)のメソッドはパブリックである必要があり、本體を持つことはできません。
  2. 複數(shù)のインターフェースの実裝: クラスはカンマで區(qū)切って複數(shù)のインターフェースを?qū)g裝できます。
  3. アクセス修飾子: インターフェイス內(nèi)のすべてのメソッドは暗黙的にパブリックです。 private や protected などのアクセス修飾子は許可されません。
  4. インターフェイス定數(shù): インターフェイスは、自動(dòng)的にパブリックになり、実裝クラスによってアクセスできる定數(shù)を宣言できます。
  5. インターフェイスの継承: インターフェイスは、メソッド シグネチャを組み合わせて 1 つ以上のインターフェイスを拡張できます。
  6. 靜的メソッド: インターフェイスには靜的メソッドを含めることはできません。
  7. すべてのメソッドの実裝: クラスは、実裝するインターフェイスによって定義されたすべてのメソッドを?qū)g裝する必要があります。

以上がPHP、クラスとオブジェクトの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP変數(shù)スコープは説明されています PHP変數(shù)スコープは説明されています Jul 17, 2025 am 04:16 AM

PHP変數(shù)スコープの一般的な問(wèn)題とソリューションには次のものが含まれます。1。グローバル変數(shù)は関數(shù)內(nèi)でアクセスできず、グローバルキーワードまたはパラメーターを使用して渡す必要があります。 2。靜的変數(shù)は靜的で宣言され、1回のみ初期化され、値は複數(shù)の呼び出し間で維持されます。 3. $ _GETや$ _POSTなどのハイパーグローバル変數(shù)は、任意の範(fàn)囲で直接使用できますが、安全なフィルタリングに注意を払う必要があります。 4.匿名関數(shù)は、使用キーワードを使用して親スコープ変數(shù)を?qū)毪工氡匾ⅳ?、外部変?shù)を変更する場(chǎng)合は、參照を渡す必要があります。これらのルールを習(xí)得すると、エラーを回避し、コードの安定性が向上するのに役立ちます。

ファイルアップロードをPHPで安全に処理する方法は? ファイルアップロードをPHPで安全に処理する方法は? Jul 08, 2025 am 02:37 AM

PHPファイルのアップロードを安全に処理するには、ソースとタイプを確認(rèn)し、ファイル名とパスを制御し、サーバー制限を設(shè)定し、メディアファイルを2回プロセスする必要があります。 1.トークンを介してCSRFを防ぐためにアップロードソースを確認(rèn)し、ホワイトリストコントロールを使用してFINFO_FILEを介して実際のMIMEタイプを検出します。 2。ファイルをランダムな文字列に変更し、検出タイプに従って非WEBディレクトリに保存する拡張機(jī)能を決定します。 3。PHP構(gòu)成は、アップロードサイズを制限し、一時(shí)的なディレクトリnginx/apacheはアップロードディレクトリへのアクセスを禁止します。 4. GDライブラリは寫(xiě)真を再利用して、潛在的な悪意のあるデータをクリアします。

PHPでコードをコメントします PHPでコードをコメントします Jul 18, 2025 am 04:57 AM

PHPコメントコードには3つの一般的な方法があります。1。//#を使用して1行のコードをブロックすると、//を使用することをお?jiǎng)幛幛筏蓼埂?2。使用/.../複數(shù)の行でコードブロックをラップするには、ネストすることはできませんが交差することができます。 3. / if(){}を使用するなどの組み合わせスキルコメントロジックブロックを制御するか、エディターショートカットキーで効率を改善するには、シンボルを閉じることに注意を払い、使用時(shí)にネストを避ける必要があります。

発電機(jī)はPHPでどのように機(jī)能しますか? 発電機(jī)はPHPでどのように機(jī)能しますか? Jul 11, 2025 am 03:12 AM

ageneratorinphpisamemory-efficientwaytoateate-overdeatatasetasetasetasetsinging valueseintimeintimeturningthemallatonce.1.generatorsususedeywordproducevaluesedemand、memoryusage.2を還元すること。2

PHPコメントを書(shū)くためのヒント PHPコメントを書(shū)くためのヒント Jul 18, 2025 am 04:51 AM

PHPコメントを書(shū)くための鍵は、目的と仕様を明確にすることです。コメントは、「何が行われたのか」ではなく「なぜ」を説明する必要があり、冗長(zhǎng)性や単純さを避けてください。 1.読みやすさとツールの互換性を向上させるために、クラスおよびメソッドの説明にdocblock(/*/)などの統(tǒng)合形式を使用します。 2。JSジャンプを手動(dòng)で出力する必要がある理由など、ロジックの背後にある理由を強(qiáng)調(diào)します。 3.複雑なコードの前に概要説明を追加し、手順でプロセスを説明し、全體的なアイデアを理解するのに役立ちます。 4. TodoとFixmeを合理的に使用して、To Doアイテムと問(wèn)題をマークして、その後の追跡とコラボレーションを促進(jìn)します。優(yōu)れた注釈は、通信コストを削減し、コードメンテナンスの効率を向上させることができます。

クイックPHPインストールチュートリアル クイックPHPインストールチュートリアル Jul 18, 2025 am 04:52 AM

to installphpquickly、usexampponwindowsorhomebrewonmacos.1.onwindows、downloadandinstallxampp、selectcomponents、startapache、andplacefilesinhtdocs.2

PHPのインデックスごとに文字列內(nèi)の文字にアクセスする方法 PHPのインデックスごとに文字列內(nèi)の文字にアクセスする方法 Jul 12, 2025 am 03:15 AM

PHPでは、四角い括弧または巻き毛裝具を使用して文字列固有のインデックス文字を取得できますが、正方形のブラケットをお?jiǎng)幛幛筏蓼?。インデックス?から始まり、範(fàn)囲外のアクセスはnull値を返し、値を割り當(dāng)てることができません。 MB_SUBSTRは、マルチバイト文字を処理するために必要です。例:$ str = "hello"; echo $ str [0];出力h; MB_Substr($ str、1,1)などの漢字は、正しい結(jié)果を得る必要があります。実際のアプリケーションでは、ループする前に文字列の長(zhǎng)さをチェックする必要があり、ダイナミック文字列を有効性のために検証する必要があり、多言語(yǔ)プロジェクトはマルチバイトセキュリティ関數(shù)を均一に使用することをお?jiǎng)幛幛筏蓼埂?/p>

PHPの學(xué)習(xí):初心者向けガイド PHPの學(xué)習(xí):初心者向けガイド Jul 18, 2025 am 04:54 AM

tolearnphpefctivially、startbysettingupalocalserverenvironmentusingtoolslikexamppandacodeeditorlikevscode.1)instalxamppforapa Che、mysql、andphp.2)useocodeeditorforsyntaxsupport.3)testyoursetup withasimplephpfile.next、Learnpbasicsincludingvariables、ech

See all articles