php 变量作用域

本文详细介绍了PHP中的变量作用域,包括局部变量、全局变量和超全局变量。局部变量仅在函数内部有效,全局变量则在函数外部可用,而超全局变量如$_POST在函数内外都可访问。此外,还讨论了如何在函数内部使用全局变量,如通过$GLOBALS或使用`global`关键字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php中变量的作用域有3个范围

  1. 局部变量,函数内部的变量
  2. 全局变量,函数外部的变量
  3. 超全家变量,函数内部外部都可以使用,一般以$_开头的

局部变量(在函数内部定义的变量)

例如:其中的 n u m 就是局部变量,不能在函数外部使用,只能在函数内部调用,以下在函数外部调用 num就是局部变量,不能在函数外部使用,只能在函数内部调用,以下在函数外部调用 num就是局部变量,不能在函数外部使用,只能在函数内部调用,以下在函数外部调用num,会报Notice: Undefined variable: num 错误

public function getVariate(){
	$num = 10;
	echo $num;
}
echo $num;

全局变量(函数外部定义的变量)

例如:$num在函数外部定义,成为全局变量,全局变量不能在函数内部使用。下面的代码会报Notice: Undefined variable: num,因为在函数外部定义的变量在函数内是不能使用的

$num = 10;
public function getVariate(){
	echo $num;
}
getVariate();

超全局变量(函数内部和外部都能使用)

超全局变量包含以下几个

  1. $_POST
  2. $_GET
  3. $_REQUEST
  4. $_COOKIE
  5. $_SERVER
  6. $_SESSION
  7. $_FILES
  8. $_ENV

以一个为例

$_POST['num']= 10;
public function getVariate(){
	echo $_POST['num'];
}
getVariate();//10
public function getVariate(){
	$_POST['num'] = 10;
}
echo $_POST['num'];//10

如何在函数内使用函数外部定义的变量

在函数内部使用函数外部的变量,除了可以使用超全局变量之外,还可以使用 G L O B A L S 或者 g l o b a l , 其中 GLOBALS或者global,其中 GLOBALS或者global,其中GLOBALS 是获取所有的全局变量的值,而global 是引用全局变量的地址。

$num = 10;
$num2=20;
public function getVariate(){
	var_dump($GLOBALS);
	$GLOBALS['num'] = 100;//将值赋给全局变量
}
echo getVariate();//10和20
echo $num;//100
$num = 10;
$num2=20;
public function getVariate(){
	global $num;
	echo $num;
	$num = 100;
}
echo getVariate();//10
echo $num;//100
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值