首頁  >  文章  >  後端開發  >  PHP 函數的作用域與存取權限

PHP 函數的作用域與存取權限

WBOY
WBOY原創
2024-04-10 11:21:011172瀏覽

PHP 函數具有作用域和存取權限,決定了變數和函數的可見性。作用域包括局部(僅限函數內)、全域(函數內外)、超全局(任何作用域)。存取權限包括 public(任何地方存取)、protected(僅限類別及子類別存取)、private(僅限類別內存取)。實戰中,購物車類別的私有變數只限類別內訪問,而公有方法可從外部調用,體現了作用域和存取權限的應用。

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

PHP 函數的作用域與存取權

函數的作用域

函數的作用域決定了變數在程式碼中可用範圍。 PHP 中有三種作用域:

  • 局部變數:僅在函數內部可用。
  • 全域變數:在函數內部和外部均可用。
  • 超全域變數:在任何作用域中均可使用。

變數作用域範例

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

$globalVariable = "Global"; // 全局变量
myFunction();
echo $globalVariable; // 在函数外部可用
?>

訪問權限

函數存取權控制外部程式碼對函數的訪問。 PHP 中有三種存取權限:

  • 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 類別中是私有的,並且只可在類別內部存取。
  • addItemgetItems 方法是公有的,可從外部程式碼存取。

以上是PHP 函數的作用域與存取權限的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn