class Person { private $name; protected $age; public $gender; public function __construct($name, $age, $gender) { $this->name = $name; $this->age = $age; $this->gender = $gender; } public function getName() { return $this->name; } public function getAge() { return $this->age; } public function setAge($age) { if ($age >= 0 && $age <= 120) { $this->age = $age; } else { echo "Invalid age!"; } } } $person = new Person("John", 30, "Male"); echo $person->getName(); // 输出:John echo $person->getAge(); // 输出:30 $person->setAge(40); echo $person->getAge(); // 输出:40 $person->setAge(150); // 输出:Invalid age!上記のコード例では、プライベート、プロパティ、およびメソッドを含む Person クラスを定義します。 3 つの異なるアクセス レベル (保護されたアクセス レベルとパブリック アクセス レベル) があります。 name 属性はプライベートであり、クラス内でのみアクセスできます。age 属性は保護されており、クラスおよびサブクラス内でアクセスできます。gender 属性はパブリックで、どこからでもアクセスできます。 また、クラスのプロパティを初期化するコンストラクター __construct() と、オブジェクトの名前と年齢のプロパティを取得および設定する getName()、getAge()、および setAge() メソッドも定義します。 カプセル化を通じて、プロパティを効果的に制御できます。たとえば、setAge() メソッドに、渡された年齢が有効な範囲内であることを確認するための条件判定を追加しました。年齢が範囲外の場合はエラーメッセージが出力されます。 要約すると、カプセル化はオブジェクト指向プログラミングの重要な原則であり、PHP はアクセス修飾子を使用してプロパティとメソッドのカプセル化を実装します。カプセル化を合理的に使用すると、コードのセキュリティ、可読性、保守性が向上すると同時に、コードのモジュール性と再利用性も向上します。上記のサンプル コードを通じて、カプセル化とオブジェクト指向プログラミングの関係をより深く理解できます。
以上がPHP におけるカプセル化とオブジェクト指向プログラミングの関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。