PHP 函數具有作用域和存取權限,決定了變數和函數的可見性。作用域包括局部(僅限函數內)、全域(函數內外)、超全局(任何作用域)。存取權限包括 public(任何地方存取)、protected(僅限類別及子類別存取)、private(僅限類別內存取)。實戰中,購物車類別的私有變數只限類別內訪問,而公有方法可從外部調用,體現了作用域和存取權限的應用。
PHP 函數的作用域與存取權
函數的作用域
函數的作用域決定了變數在程式碼中可用範圍。 PHP 中有三種作用域:
變數作用域範例
<?php function myFunction() { $localVariable = "Local"; // 局部变量 echo $localVariable; // 在函数内部可用 } $globalVariable = "Global"; // 全局变量 myFunction(); echo $globalVariable; // 在函数外部可用 ?>
訪問權限
函數存取權控制外部程式碼對函數的訪問。 PHP 中有三種存取權限:
存取權限範例
<?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中文網其他相關文章!