php中的Global关键字和数组有什么区别

时间:2010-12-06 09:59:26

标签: php

我必须更改脚本以在禁用全局变量的服务器上运行。

所以我想知道这是否有效:

function setData(){
  echo $GLOBALS['data'];
}

这会有用吗?

function setData(){
  global $data;
  echo $data;
}

如果不是,解决方案是什么?

2 个答案:

答案 0 :(得分:4)

你在谈论register_globals吗?这不会禁用所有全局变量,它只是禁用从请求参数设置全局变量。

这意味着,如果有人转到这样的页面:index.php?admin=1,那么在index.php中,全局变量$admin将设置为1。你通常不想要的。它不会阻止全局变量的运行。

正如牧师Shrapnel在评论中所说,$_GLOBALS无效,因为数组的名称为$GLOBALS

答案 1 :(得分:0)

对你来说最简单的方法就是简单地试试......回答你的问题:我很确定global $data;无论如何都应该工作 - 我不知道有可能禁用它,但也许有一个禁用$_GLOBAL - 阵列(我不确定这个,但如果我不是在理解你的问题,你就是在使用这种可能性 - 或者,正如Skilldrick所说,你的意思是完全不同的东西)