現在の位置: ホーム> 最新記事一覧> PHPオブジェクト指向プログラミングの開始:アクセス修飾子を使用してオブジェクトのプロパティとメソッドを保護する方法

PHPオブジェクト指向プログラミングの開始:アクセス修飾子を使用してオブジェクトのプロパティとメソッドを保護する方法

M66 2025-06-05

PHPオブジェクト指向プログラミングの基本:アクセス修飾子の詳細な説明

PHP開発では、オブジェクト指向プログラミング(OOP)は主流のプログラミングパラダイムです。 「クラス」と「オブジェクト」の構造を通じてコードを整理し、プログラム構造をより明確にし、拡張し、メンテナンスしやすくします。実際の開発では、アクセス修飾子を使用する必要があるクラス内のプロパティとメソッドのアクセス権を合理的に制御することが重要です。

この記事では、PHPの3つのアクセス修飾子、パブリック(パブリック)、プライベート(プライベート)、保護(保護)について詳細に説明し、例を使用して使用を習得するのに役立ちます。

Access Modifierとは何ですか?

アクセス修飾子は、クラス内のプロパティとメソッドのアクセスレベルを制御するために使用され、外部コードから内部実装への干渉とプログラムのカプセル化を回避します。 PHPは次の3つの修飾子をサポートします。

  • パブリック:パブリックアクセス、どこでもアクセス可能。

  • プライベート:プライベートアクセス、クラスの内部使用のみ。

  • 保護:保護されたアクセス、クラスの内部およびサブクラスのみ。

1。パブリックアクセス修飾子

パブリックは最も一般的なアクセス修飾子です。つまり、クラスの属性またはメソッドは外部に開放されており、どこでもアクセスまたは電話をかけることができます。

 class Person {
  public $name;

  public function sayHello() {
    echo "Hello, my name is " . $this->name;
  }
}

$person = new Person();
$person->name = "John";
$person->sayHello();  // 出力:Hello, my name is John

この例では、 $ namesayhello()の両方が公開されています。外部の割り当てと呼び出しは、値に直接割り当てられ、呼び出されますが、これは非常に直感的ですが、属性が自由に変更され、プログラムの安定性に影響を与える可能性があります。

2。プライベートアクセス修飾子

プライベートによって変更されたプロパティと方法は、それらを定義するクラス内でのみアクセスでき、外側に直接アクセスすることはできません。この方法は、カプセル化を強化し、クラスの内部実装を保護する一般的な手段です。

 class Person {
  private $name;

  public function setName($name) {
    $this->name = $name;
  }

  public function sayHello() {
    echo "Hello, my name is " . $this->name;
  }
}

$person = new Person();
$person->setName("John");
$person->sayHello();  // 出力:Hello, my name is John

public setName()メソッドを提供することにより、外部は$ nameを間接的に設定できますが、プロパティに直接アクセスすることはできず、データの整合性を効果的に保護します。

3。保護されたアクセス修飾子

保護されているのはプライベートパブリックの間であり、継承されたクラスがプロパティまたは方法にアクセスできるようにしますが、外部にはアクセスできません。

 class Person {
  protected $name;

  public function setName($name) {
    $this->name = $name;
  }

  public function sayHello() {
    echo "Hello, my name is " . $this->name;
  }
}

class Student extends Person {
  public function study() {
    echo $this->name . " is studying.";
  }
}

$student = new Student();
$student->setName("John");
$student->sayHello();  // 出力:Hello, my name is John
$student->study();     // 出力:John is studying.

上記のコードでは、学生はから継承するため、保護された$ nameプロパティに直接アクセスできます。保護された修飾子は、クラス継承構造での使用に適しており、カプセル化を維持し、特定の柔軟性を持っています。

要約します

Access Modifierを合理的に使用することにより、オブジェクトのプロパティとメソッドのアクセススコープを効果的に制御できるため、プログラムのセキュリティと保守性が向上します。実際の開発:

  • 属性をプライベートまたは保護されたものに設定することをお勧めします。

  • データセキュリティを強化するために、パブリック方法を介して属性を操作します。

  • 相続関係に従って保護された使用を選択します。

  • プロパティエクスポージャーによって引き起こされる制御不能な変更を避けてください。

これらの基本原則を習得すると、より堅牢で保守可能なオブジェクト指向のコードを作成するのに役立ちます。