ホームページ  >  記事  >  バックエンド開発  >  PHP パーミッション制御修飾子の秘密を明らかにする: 実践的なアプリケーションでの使用スキルをマスターする

PHP パーミッション制御修飾子の秘密を明らかにする: 実践的なアプリケーションでの使用スキルをマスターする

WBOY
WBOYオリジナル
2024-01-19 10:06:061236ブラウズ

PHP パーミッション制御修飾子の秘密を明らかにする: 実践的なアプリケーションでの使用スキルをマスターする

PHP は、Web 開発で広く使用されているプログラミング言語です。 Web アプリケーションを開発する場合、アクセス許可の制御は不可欠な部分であり、アクセス許可の制御により、データのセキュリティとアプリケーションの機能の整合性が確保されます。 PHP には多くの権限制御修飾子が用意されており、この記事ではこれについて説明します。

アクセス許可制御修飾子の概要

PHP には、パブリック、プロテクト、プライベートの 3 つの主なタイプのアクセス許可制御修飾子があります。

パブリックとはパブリック アクセスを意味し、そのプロパティとメソッドにはクラス内外のどこからでもアクセスできます。

protected は保護されたアクセスを意味し、そのプロパティとメソッドは現在のクラスとサブクラスでアクセスできます。

private はプライベート アクセスを意味し、そのプロパティとメソッドには現在のクラスでのみアクセスできます。

上記の 3 つの権限制御修飾子に加えて、final および static もあります。

final は最終クラスを表し、そのプロパティとメソッドは継承できません。

static は静的クラスを表します。そのプロパティとメソッドはクラス内外のどこからでもアクセスでき、クラスをインスタンス化せずに使用できます。

パーミッション制御実装の原則

クラス内のプロパティとメソッドには、可視性を制限する修飾子があり、これによりパーミッション制御が実現されます。

PHP パーサーは修飾子に基づいてアクセス許可を決定します。プロパティまたはメソッドで修飾子が定義されていない場合、デフォルトは public になります。

実践的なアプリケーションでの使用スキル

次に、実際のアプリケーション シナリオを通じて、権限制御修飾子の使用スキルを習得します。

  1. 属性の改ざんを防ぐ

多くの Web アプリケーションでは、データの整合性とセキュリティを確保するために、一部の属性を制限して改ざんを防ぐ必要があります。改ざんされました。これは、private 属性修飾子を使用して実現できます。

以下は例です:

class User {
    private $username;
    private $password;
    
    public function __construct($username, $password) {
        $this->username = $username;
        $this->password = $password;
    }
    
    public function getUsername() {
        return $this->username;
    }
    
    public function getPassword() {
        return $this->password;
    }
}

$user = new User('Tom', '123456');
$user->username = 'Jerry'; // 禁止修改
  1. メソッドをオーバーライドできないようにする

場合によっては、クラスのメソッドをオーバーライドできないようにする必要があります。 overridden サブクラスによるオーバーライドは、final 属性修飾子を使用して実現できます。

次は例です:

class Animal {
    final public function move() {
        echo 'Moving...';
    }
}
 
class Dog extends Animal {
    // 错误示例
    public function move() {
        echo 'Running...';
    }
}

$dog = new Dog();
$dog->move(); // 输出 Moving...
  1. 属性アクセスの保護

特定の属性へのアクセスを制限する必要がある場合は、保護された属性を使用できます。修飾子 。

次は例です:

class Person {
    protected $name;
    
    public function __construct($name) {
        $this->name = $name;
    }
}

class Student extends Person {
    public function getName() {
        // 错误示例
        return $this->name;
    }
}

$student = new Student('Tom');
echo $student->getName(); // 输出空白,无法访问父类属性
  1. 制御されたアクセスの実装

複雑なアプリケーションでは、一部のプロパティまたはメソッドを更新する必要があります。アクセス制御では、パブリック メソッドを使用してプロパティ値を取得または設定できます。これにより、パブリック メソッドを介してプロパティ アクセスを制御できるようになります。

次は例です:

class User {
    private $username;
    private $password;
    
    public function __construct($username, $password) {
        $this->username = $username;
        $this->password = $password;
    }
    
    public function setUsername($username) {
        // 禁止修改用户名
        if ($this->username === $username) {
            return false;
        }
        
        $this->username = $username;
        return true;
    }
    
    public function setPassword($password) {
        $this->password = $password;
    }
    
    public function getUsername() {
        return $this->username;
    }
    
    public function getPassword() {
        return $this->password;
    }
}

$user = new User('Tom', '123456');
$user->setUsername('Jerry'); // 禁止修改
$user->setPassword('654321');
echo $user->getUsername() . ':' . $user->getPassword(); // 输出 Tom:654321

概要

PHP 開発では、権限制御は非常に重要な部分です。権限制御を通じて、アクセス範囲を制御し、保護することができます。データのセキュリティ。アプリケーションの信頼性と安定性を向上させます。この記事では、PHP でよく使用される権限制御修飾子を紹介し、実際のアプリケーション シナリオを通じて説明およびデモを行いますので、PHP 開発者の参考になれば幸いです。

以上がPHP パーミッション制御修飾子の秘密を明らかにする: 実践的なアプリケーションでの使用スキルをマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。