PHP - PHP 变量(局部变量、全局变量、静态变量、可变变量、超全局变量)

一、变量基础特性

1、基本介绍
  1. PHP 是弱类型语言,变量无需预先声明类型

  2. 变量命名以 $ 符号开头,可包含字母、数字和下划线

  3. 变量命名不能以数字开头,区分大小写

2、演示
$username = 'jack';
$userName = '';
$count = 0;
$_count = 10;

echo $username . "\n";
echo $userName . "\n";
echo $count . "\n";
echo $_count . "\n";
# 输出结果

jack

0
10

二、变量作用域

1、局部变量
(1)基本介绍
  1. 定义范围:在函数内部声明

  2. 生命周期:从变量声明开始到函数执行结束

  3. 访问限制:只能在声明它的函数内部访问

(2)演示
  1. 局部变量只能在声明它的函数内部访问,在外部访问会报错
function func()
{
    $temp = 10;
    echo $temp . "\n";
}

echo $temp . "\n";
# 输出结果

10
PHP Warning:  Undefined variable $temp
  1. 不同函数中的同名局部变量互不干扰
function funcA()
{
    $temp = 10;
    echo $temp . "\n";
}

function funcB()
{
    $temp = 100;
    echo $temp . "\n";
}

funcA();
funcB();
# 输出结果

10
100
  1. 函数参数也是局部变量
function greet($name)
{
    echo "Hello, $name";
}

greet('jack');
# 输出结果

Hello, jack
2、全局变量
(1)基本介绍
  1. 定义范围:在函数外部声明

  2. 生命周期:从声明开始到脚本执行结束

  3. 访问限制:函数内部不能直接访问

(2)演示
  1. 函数内部不能直接访问全局变量
$globalCounter = 0;

function increment()
{
    $globalCounter++;
    echo $globalCounter . "\n";
}

increment();

echo $globalCounter . "\n";
# 输出结果

PHP Warning:  Undefined variable $globalCounter
1
0
  1. 通过 global 关键字访问全局变量
$globalCounter = 0;

function increment()
{
    global $globalCounter;
    $globalCounter++;
    echo $globalCounter . "\n";
}

increment();

echo $globalCounter . "\n";
# 输出结果

1
1
  1. 通过 $GLOBALS 超全局变量访问全局变量
$globalCounter = 0;

function increment()
{
    $GLOBALS['globalCounter']++;
    echo $GLOBALS['globalCounter'] . "\n";
}

increment();

echo $globalCounter . "\n";
# 输出结果

1
1
3、静态变量
(1)基本介绍
  1. 定义范围:在函数内部声明

  2. 生命周期:函数多次调用间保持值

  3. 限制:只在第一次调用时初始化

(2)演示
function trackCalls()
{
    static $count = 0;
    $count++;
    echo $count . "\n";
}

trackCalls();
trackCalls();
# 输出结果

1
2

三、变量高级特性

1、可变变量
(1)基本介绍
  • 可变变量允许通过变量的值来动态地访问另一个变量
(2)演示
$varName = 'message';
$$varName = 'Hello World';
echo $message;
# 输出结果

Hello World
2、超全局变量
(1)基本介绍
  1. 超全局变量是一类特殊的预定义变量

  2. 超全局变量在脚本的全部作用域中自动可用,无需使用 global 关键字声明

超全局变量说明
$GLOBALS引用全局作用域中可用的全部变量
$_SERVER服务器和执行环境信息
$_GETHTTP GET 变量
$_POSTHTTP POST 变量
$_FILESHTTP 文件上传变量
$_COOKIEHTTP Cookies
$_SESSIONSession 变量
$_REQUESTHTTP Request 变量(包含 GET、POST、COOKIE)
$_ENV环境变量
(2)演示
$globalCounter = 0;

function increment()
{
    $GLOBALS['globalCounter']++;
    echo $GLOBALS['globalCounter'] . "\n";
}

increment();

echo $globalCounter . "\n";
# 输出结果

1
1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值