Web アプリケーション開発において、特にアプリケーションにユーザー認証や機密情報の保護が含まれる場合、権限制御は非常に重要な機能です。 PHP では、アクセス許可制御修飾子は、クラス、プロパティ、メソッドへのアクセス許可を制御するために使用される一般的なツールです。この記事では、PHP のさまざまなアクセス許可制御修飾子の特性と機能を詳しく分析し、具体的なコード例を通じてその使用法を示します。
public は PHP の最も基本的な修飾子であり、クラス、プロパティ、メソッドにアクセスできることを意味します。つまり、クラス、プロパティ、またはメソッドが public として宣言されている場合、どこからでもアクセスできます。例:
class Car { public $color; // public属性 public function drive() { // public方法 echo "Driving"; } }
上記のコードは、パブリック プロパティ $color
とパブリック メソッド drive()## を含む
Car という名前のクラスを定義します。 #。これらのメンバーはパブリックであるため、他のコードからアクセスして呼び出すことができます。たとえば、
$myCar = new Car(); $myCar->color = "red"; // 访问public属性 $myCar->drive(); // 调用public方法
class Car { protected $color; // protected属性 protected function drive() { // protected方法 echo "Driving"; } }上記のコードでは、
$color と
drive() の両方が保護されると宣言されているため、
Car クラスと
drive()
class SportsCar extends Car { public function set_color($color) { $this->color = $color; // 可以访问protected属性 } } $sportsCar = new SportsCar(); $sportsCar -> set_color("blue"); // 调用public方法
上記のコードは、
SportsCar という名前のサブクラスを定義し、その中にパブリック メソッドを定義します。これを通じて、
Car クラスを設定できます。 protected 属性
$色。
SportsCar は
Car クラスを継承するため、
Car クラスの保護されたメンバーにアクセスして呼び出すことができます。 class Car { private $mileage; // private属性 private function update_mileage() { // private方法 $this -> mileage++; } }
上記のコードでは、
$mileage と
update_mileage() の両方が、
Car クラス内でのみプライベートとして宣言されています。コードのみがそれらにアクセスして呼び出すことができます。例: $myCar = new Car(); $myCar->mileage = 1000; // 这里会报错,因为$mileage是私有的 $myCar->update_mileage(); // 这里会报错,因为$update_mileage()是私有的上記のコードは、クラス外ではプライベート プロパティにアクセスしたり変更したりすることができず、プライベート メソッドを呼び出すことができないことを示しています。
class Car { final public function drive() { // final public方法 echo "Driving"; } } class SportsCar extends Car { public function drive() { // 这里会报错,因为drive()被声明为final echo "Driving fast"; } }
上記のコードは、最後のパブリック メソッド
drive() を含む
Car という名前のクラスを定義します。
SportsCar クラスで
drive() メソッドをオーバーライドしようとしましたが、このメソッドは
Car クラスで Final として宣言されているため、コードでエラーが生成されます。これは、メソッドがfinalとして定義されており、サブクラスによって変更できないことを意味します。 概要この記事では、PHP のさまざまな権限修飾子の特性と機能を詳しく分析しました。 public はどこからでもアクセスと呼び出しを許可し、protected はクラスとそのサブクラスへのアクセスと呼び出しを許可し、private はクラス内でのアクセスと呼び出しのみを許可します。 Final は、これらのメンバーが「最終状態」にあり、サブクラスによって変更できないことを意味します。これらのアクセス許可修飾子の使用方法を理解することが、適切なアクセス許可制御とコード設計の鍵となります。 ###以上がPHP パーミッション制御修飾子の分析: さまざまな修飾子の特性と機能の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。