为什么这样可以直接输出来呢?hello明明是globals数组中的一个键值,那为什么它竟然可以直接按变量输出呢?

todayisbest 2005-12-28 10:36:02
为什么这样可以直接输出来呢?hello明明是globals数组中的一个键值,那为什么它竟然可以直接按变量输出呢?

<?
$GLOBALS['hello']='helloo';
echo $hello;
?>
...全文
155 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
哦,在函数中使用时,必须先申明为全局变量
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
但是已经把'x'设为全局变量了啊,不是在任意地方都可以访问的吗?
xuzuning 2005-12-28
  • 打赏
  • 举报
回复
因为在函数aa里没有定义变量$x

请查看手册中"变量的作用域"
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
重发一次,上面有句写错了:
<?php
$GLOBALS['x']='xx';
function aa()
{
echo $x;
}
aa();
?>
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
那为什么下面这种就不能输出呢?
<?php
$GLOBALS['x']='xx';
function aa()
{
$echo $x;
}
aa();
?>
johnpanq 2005-12-28
  • 打赏
  • 举报
回复
$GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。
所以如果$hello是全局范围内的, 则$GLOBALS['hello']就是对$hello的引用,你可以改变$hello的值,$GLOBALS['hello']也会跟着改变。
johnpanq 2005-12-28
  • 打赏
  • 举报
回复
因为$GLOBALS['hello'] 就是$hello
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
up

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧