ホームページ  >  記事  >  バックエンド開発  >  PHP 関数のアクセス制御レベルは何ですか?

PHP 関数のアクセス制御レベルは何ですか?

PHPz
PHPzオリジナル
2024-04-11 10:06:01926ブラウズ

PHP 関数には、パブリック、プロテクト、プライベートの 3 つのアクセス制御レベルがあります。パブリック関数はどこからでもアクセスでき、保護関数はその独自のクラスとサブクラスにのみアクセスでき、プライベート関数はその独自のクラスにのみアクセスできます。アクセス制御レベルを変更する場合は、関数宣言の前に、public 関数、protected 関数、private 関数などの対応するキーワードを追加するだけです。

PHP 函数的访问控制级别有哪些?

#PHP 関数のアクセス制御レベル

PHP 関数のアクセス制御レベルにより、関数のどの部分にアクセスできるかが決まります。これにより、関数へのアクセスを制限できるため、コードの保守性とセキュリティが向上します。

アクセス制御レベル

PHP には 3 つのアクセス制御レベルがあります。

  • public: 関数は次のとおりです。すべてのプレイス訪問からアクセスできます。
  • protected: 関数には、その関数が配置されているクラスとそのサブクラスからのみアクセスできます。
  • private: 関数には、その関数が配置されているクラスからのみアクセスできます。
#構文

アクセス制御レベルを変更する場合は、関数宣言の前に対応するキーワードを追加するだけです。

// public 函数
public function myPublicFunction() {
    // ...
}

// protected 函数
protected function myProtectedFunction() {
    // ...
}

// private 函数
private function myPrivateFunction() {
    // ...
}

実際的なケース

ユーザー データを保存するためのクラス

User

があるとします。このクラスのパブリック メソッドを介してのみユーザー データへのアクセスを許可したいと考えています。これを実現するには、ユーザー データを取得する関数を保護に設定します。 <pre class='brush:php;toolbar:false;'>class User { protected $name; protected $email; public function getName() { return $this-&gt;name; } public function getEmail() { return $this-&gt;email; } }</pre> これで、他のクラスが

User

オブジェクトを通じて getName() および # にアクセスできるようになります。 #getEmail() メソッドを使用できますが、$name プロパティと $email プロパティに直接アクセスすることはできません。

デフォルトでは、PHP 関数のアクセス制御レベルはパブリックです。

    プライベート関数または保護された関数にアクセスしようとすると、
  • 致命的エラー
  • が発生します。
  • 保護された関数は、parent::
  • を介して派生クラスでアクセスできます。
  • アクセス制御レベルを使用して、機密データおよび機能へのアクセスを保護することを検討してください。アクセス制御を適切に使用すると、コードのセキュリティを向上させることができます。

以上がPHP 関数のアクセス制御レベルは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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