PHP パーミッション制御修飾子の分析: さまざまな修飾子の特性と機能の詳細な分析

王林
リリース: 2024-01-19 10:44:02
オリジナル
928 人が閲覧しました

PHP パーミッション制御修飾子の分析: さまざまな修飾子の特性と機能の詳細な分析

Web アプリケーション開発において、特にアプリケーションにユーザー認証や機密情報の保護が含まれる場合、権限制御は非常に重要な機能です。 PHP では、アクセス許可制御修飾子は、クラス、プロパティ、メソッドへのアクセス許可を制御するために使用される一般的なツールです。この記事では、PHP のさまざまなアクセス許可制御修飾子の特性と機能を詳しく分析し、具体的なコード例を通じてその使用法を示します。

  1. public 修飾子

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方法
ログイン後にコピー

    protected 修飾子
protected は、PHP の Permission 修飾子にある別の修飾子です。これは、クラスとそのサブクラスはプロパティまたはメソッドにアクセスできるが、他のコードはアクセスできないことを示します。例:

class Car {
    protected $color; // protected属性
    protected function drive() { // protected方法
        echo "Driving";
    }
}
ログイン後にコピー

上記のコードでは、

$colordrive() の両方が保護されると宣言されているため、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 属性$色SportsCarCar クラスを継承するため、Car

クラスの保護されたメンバーにアクセスして呼び出すことができます。
  1. private 修飾子

private は、PHP で最も制限的な権限修飾子であり、クラス内のコードのみがメンバーにアクセスできることを示すために使用されます。他のクラスやオブジェクトは、これにアクセスしたり呼び出したりすることはできません。例:

class Car {
    private $mileage; // private属性
    private function update_mileage() { // private方法
        $this -> mileage++;
    }
}
ログイン後にコピー
上記のコードでは、$mileageupdate_mileage() の両方が、Car

クラス内でのみプライベートとして宣言されています。コードのみがそれらにアクセスして呼び出すことができます。例:

$myCar = new Car();
$myCar->mileage = 1000; // 这里会报错,因为$mileage是私有的
$myCar->update_mileage(); // 这里会报错,因为$update_mileage()是私有的
ログイン後にコピー

上記のコードは、クラス外ではプライベート プロパティにアクセスしたり変更したりすることができず、プライベート メソッドを呼び出すことができないことを示しています。
  1. final 修飾子

上記の 3 つの権限修飾子に加えて、PHP には、final という別の修飾子があります。 Final は、クラス、プロパティ、およびメソッドで「最終」であること、つまりサブクラスによって継承またはオーバーライドできないことを示すために使用できます。例:

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!