- PHP 菜鸟教程
- PHP - 教程
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 功能
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - echo 语句和 print 语句
- PHP - var_dump() 函数
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP – 数据类型
- PHP - 类型转换
- PHP - 类型戏法
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件和I/O
- PHP – 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符类型
- PHP - 算术运算符示例
- PHP - 比较运算符示例
- PHP - 逻辑运算符示例
- PHP - 赋值运算符示例
- PHP – 字符串运算符
- PHP – 数组运算符
- PHP – 条件运算符示例
- PHP - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
- PHP – 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP – 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - do...While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 数组
- PHP - 数组
- PHP - 索引数组
- PHP - 关联数组
- PHP - 多维数组
- PHP - 数组函数
- PHP - 常量数组
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值调用
- PHP - 按引用调用
- PHP - 默认参数
- PHP - 命名参数
- PHP - 变量参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量范围
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头( Arrow )函数
- PHP - 变量处理函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS 变量
- PHP - $_SERVER 变量
- PHP - $_REQUEST 变量
- PHP - $_POST 变量
- PHP - $_GET 变量
- PHP - $_FILES 变量
- PHP - $_ENV 变量
- PHP - $_COOKIE 变量
- PHP - $_SESSION 变量
- PHP 文件处理
- PHP - 文件处理
PHP - 全局变量
在 PHP 中,任何可以从 PHP 脚本中的任何位置访问的变量都称为全局变量。如果变量在脚本中的所有函数或类之外声明,则它将成为全局变量。
虽然全局变量可以直接在函数外部访问,但它们不会在函数内部自动可用。
例
在下面的脚本中,$name 对于函数 sayhello() 是全局的。
<?php
$name = "Amar";
function sayhello() {
echo "Hello " . $name;
}
sayhello();
?>
但是,该变量在函数内部不可访问。因此,您将收到一条错误消息 “Undefined variable $name”。
PHP Warning: Undefined variable $name in /home/cg/root/93427/main.php on line 5
例
要在函数中获取访问权限,您需要在变量之前使用 “global” 关键字。
<?php
$name = "Amar";
function sayhello() {
GLOBAL $name;
echo "Hello " . $name;
}
sayhello();
?>
它将产生以下输出 -
如果函数访问全局变量并对其进行修改,则修改后的值在函数调用完成后随处可用。
让我们更改 sayhello() 函数中 $name 的值,并在调用函数后检查其值。
例
看看下面的例子 -
<?php
$name = "Amar";
function sayhello() {
GLOBAL $name;
echo "Global variable name: $name" .PHP_EOL;
$name = "Amarjyot";
echo "Global variable name changed to: $name" .PHP_EOL;
}
sayhello();
echo "Global variable name after function call: $name" .PHP_EOL;
?>
它将产生以下输出 -
Global variable name changed to: Amarjyot
Global variable name after function call: Amarjyot
$GLOBALS 阵列
PHP 维护一个名为 $GLOBALS 的关联数组,该数组包含在全局范围内声明的所有变量及其值。$GLOBALS 数组还存储了许多称为超全局变量的预定义变量,以及用户定义的全局变量。
借助访问 箭头(arrow) 元素的常规语法,也可以在任何函数中访问任何全局变量。例如,全局变量 $name 的值由 $GLOBALS[“name”] 给出。
例
在下面的示例中,在 addition() 函数中访问两个全局变量 $x 和 $y。
<?php
$x = 10;
$y = 20;
function addition() {
$z = $GLOBALS['x']+$GLOBALS['y'];
echo "Addition: $z" .PHP_EOL;
}
addition();
?>
它将产生以下输出 -
例
您还可以通过将任何局部变量添加到 $GLOBALS 数组中,将其添加到全局范围内。让我们在全局范围内添加 $z。
<?php
$x = 10;
$y = 20;
function addition() {
$z = $GLOBALS['x']+$GLOBALS['y'];
$GLOBALS['z'] = $z;
}
addition();
echo "Now z is the global variable. Addition: $z" .PHP_EOL;
?>
它将产生以下输出 -
将一个 PHP 脚本包含在另一个 PHP 脚本中
您可以将一个 PHP 脚本包含在另一个 PHP 脚本中。在包含的脚本中声明的变量将添加到包含该脚本的 PHP 脚本的全局范围内。
这是 “a.php” 文件 −
<?php
include 'b.php';
function addition() {
$z = $GLOBALS['x']+$GLOBALS['y'];
echo "Addition: $z" .PHP_EOL;
}
addition();
?>
它包括具有 $x 和 $y 变量的 “b.php”,因此它们成为 “a.php” 脚本中 addition() 函数的全局变量。
<?php
$x = 10;
$y = 20;
?>
全局变量通常在实现单例模式、访问嵌入式系统中的寄存器以及许多函数使用变量时使用。