ホームページ > バックエンド開発 > PHPチュートリアル > PHP関数のスコープとアクセス権限

PHP関数のスコープとアクセス権限

WBOY
リリース: 2024-04-10 11:21:01
オリジナル
1270 人が閲覧しました

PHP 関数にはスコープとアクセス許可があり、変数と関数の可視性を決定します。スコープには、ローカル (関数内のみ)、グローバル (関数の内部および外部)、およびスーパーグローバル (任意のスコープ) が含まれます。アクセス権には、パブリック (どこからでもアクセス)、保護 (クラスおよびサブクラスへのアクセスのみ)、およびプライベート (クラス内のみのアクセス) があります。実際の戦闘では、ショッピング カート クラスのプライベート変数はクラス内でのみアクセスできますが、パブリック メソッドはスコープとアクセス権の適用を反映して外部から呼び出すことができます。

PHP 函数的作用域和访问权限

#PHP 関数のスコープとアクセス権限

関数のスコープ

関数のスコープによって、コード内で使用できる変数のスコープが決まります。 PHP には 3 種類のスコープがあります:

    ローカル変数: 関数内でのみ使用可能。
  • グローバル変数: 関数の内部と外部の両方で使用できます。
  • スーパー グローバル変数: 任意のスコープで使用できます。
#変数スコープの例

<?php
function myFunction() {
  $localVariable = "Local"; // 局部变量
  echo $localVariable; // 在函数内部可用
}

$globalVariable = "Global"; // 全局变量
myFunction();
echo $globalVariable; // 在函数外部可用
?>
ログイン後にコピー

アクセス許可

関数アクセス許可は、外部コードによる関数へのアクセスを制御します。 PHP には 3 種類のアクセス権があります。

    public
  • : どこからでもアクセス可能。
  • protected
  • : クラスとそのサブクラス内でのみアクセス可能です。
  • private
  • : クラス内でのみアクセス可能。
  • #アクセス許可の例

<?php
class MyClass {
  public function publicMethod() {
    // 可从任何地方访问
  }

  protected function protectedMethod() {
    // 可从类及其子类中访问
  }

  private function privateMethod() {
    // 仅可从类内部访问
  }
}

$myClass = new MyClass();
$myClass->publicMethod(); // 可访问
$myClass->protectedMethod(); // 可访问(类外部子类中)
$myClass->privateMethod(); // 错误,不可访问
?>
ログイン後にコピー
実際的なケース

スコープと範囲を表示する単純なショッピング カート クラスを作成します。アクセス権。

<?php
class Cart {
  private $items = [];

  public function addItem($item) {
    $this->items[] = $item; // 局部变量 $item 可在此处访问
  }

  public function getItems() {
    return $this->items; // 局部变量 $items 可在此处访问
  }
}

$cart = new Cart();
$cart->addItem("苹果");
$cart->addItem("香蕉");
print_r($cart->getItems()); // 输出购物车中的物品
?>
ログイン後にコピー

この例:

$items
    変数は
  • Cart クラス内でプライベートであり、クラス内でのみアクセスできます。 。 addItem
  • メソッドと
  • getItems メソッドはパブリックであり、外部コードからアクセスできます。

以上がPHP関数のスコープとアクセス権限の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート