Comment est déterminée la portée variable d'une fonction PHP ?

WBOY
Libérer: 2024-04-16 16:51:02
original
457 Les gens l'ont consulté

La portée variable en PHP est divisée en portée locale (au sein d'une fonction), globale (accessible au sein d'un programme) et de classe (accessible au sein d'une instance de classe). Le mot-clé global peut déclarer des variables locales comme variables globales, et le mot-clé static peut déclarer des variables locales comme variables statiques, en conservant leurs valeurs entre les appels de fonction.

PHP 函数的变量作用域是如何确定的?

Détermination de la portée d'une variable en PHP

En PHP, la portée d'une variable fait référence aux parties du code qui peuvent accéder et modifier la variable. Comprendre la portée des variables est crucial pour écrire du code PHP robuste et maintenable.

Règles de portée pour PHP

  • Portée locale : Les variables définies à l'intérieur d'une fonction ou d'une méthode ne sont accessibles qu'à l'intérieur de cette fonction ou méthode.
  • Portée globale : Les variables définies dans la portée globale sont accessibles n'importe où dans le programme.
  • Portée de la classe : Les constantes et les variables statiques définies à l'intérieur d'une classe mais pas dans les fonctions ou les méthodes ont une portée de classe et sont accessibles dans les instances de la classe.

Mots clés qui affectent la portée de la variable

  • global : Déclarez les variables locales en tant que variables globales, permettant d'accéder aux variables globales à l'intérieur de la fonction.
  • static : Déclarez une variable locale comme variable statique afin qu'elle conserve sa valeur entre les appels de fonction.
// 全局变量
$global_var = 10;

function test() {
    // 局部变量
    $local_var = 5;

    // 使用全局变量,需要使用 global 关键字
    global $global_var;

    // 使用静态变量
    static $static_var = 0;
    
    $static_var++;
    
    // 输出变量值
    echo "局部变量:$local_var <br>";
    echo "全局变量:$global_var <br>";
    echo "静态变量:$static_var <br>";
}

test(); // 输出: 局部变量:5 <br> 全局变量:10 <br> 静态变量:1
test(); // 输出: 局部变量:5 <br> 全局变量:10 <br> 静态变量:2
Copier après la connexion

Cas pratique

Supposons qu'il existe une classe de panier d'achat utilisée pour gérer les articles dans les achats. Cette classe contient une variable privée nommée $items qui stocke la liste des articles dans le panier. $items 的私有变量,存储购物车中的商品列表。

class Cart {
    private $items = [];

    public function addItem($item) {
        $this->items[] = $item;
    }

    public function getItems() {
        return $this->items;
    }
}

// 创建购物车实例
$cart = new Cart;

// 添加商品
$cart->addItem('商品 1');
$cart->addItem('商品 2');

// 获取购物车中的商品
$items = $cart->getItems();

// 输出购物车中商品, 使用循环遍历或打印数组
foreach ($items as $item) {
    echo $item . '<br>';
}
Copier après la connexion

在此示例中,$items 变量具有私有作用域,只能在 Cartrrreee

Dans cet exemple, la variable $items a une portée privée et n'est accessible et modifiable que dans la méthode d'instance de la classe Cart. Cette variable est disponible tout au long du cycle de vie de l'instance de classe, réalisant l'encapsulation et la gestion des articles du panier. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal