扫盲 2026.10.03 17:44 43 次浏览 0 条评论

PHP全局局部变量

PHP 里函数外面定义的变量是全局变量,函数里面定义的叫局部变量。默认情况下两者互不干扰,函数内部直接拿外面的变量会报未定义。

想在函数里用外面的变量,两种办法:global 关键字,或者 $GLOBALS 数组。

<?php
$name = "小明"; // 全局变量

function say1() {
    // echo $name;  // 报错,函数内拿不到
    global $name;   // 先声明再使用
    echo $name;
}

function say2() {
    echo $GLOBALS['name']; // 超全局数组,随时可拿
}

函数里定义的局部变量,函数一执行完就销毁。想让它下次调用还记得上次的值,加个 static。

<?php
function count1() {
    static $i = 0; // 只初始化一次
    $i++;
    echo $i;
}
count1(); // 输出 1
count1(); // 输出 2

注意点:global 和 $GLOBALS 指向的是同一份内存,改哪个另一个都跟着变。局部变量就算跟全局变量重名,也是两块独立的内存,不会互相覆盖。写函数时尽量少用 global,参数传进去更清爽。

说点什么 0

行思随记

欢迎来到:行思随记