$ GLOBAL [“test”]和全球$ test之间有什么区别吗?

时间:2010-05-22 12:11:12

标签: php global

任何人都可以告诉我

之间的基本区别
$GLOBALS["test"] and global $test

并且,如果我使用$GLOBALS["test"]代替$_SESSION['test'],是否有意义?

2 个答案:

答案 0 :(得分:4)

  

并且,如果我使用,它是否有意义   $ GLOBALS [“test”]而不是   $ _SESSION [ '测试']

不, session 与全球可用的变量不同。

<强> $ GLOBALS

  

包含的关联数组   引用所有变量   目前在全球范围内定义   的脚本。变量名是   数组的键。

http://php.net/manual/en/reserved.variables.globals.php

<强>解释

$GLOBALS是整个脚本中可用的关联数组,无需使用global $test

  

注意:这是'超全球',或   自动全局变量。这个   只是意味着它可用   整个脚本中的所有范围。那里   不需要做全局$变量;至   在函数或方法中访问它。

答案 1 :(得分:1)

$GLOBALS["test"]global $test之间没有区别。两者都是纯粹的邪恶,不应该使用。

他们为什么邪恶?

  1. 突然间,你的代码变得依赖于某些外部环境,它的可移植性一目了然。它需要在某处定义一些变量,没有人知道在哪里,有一些价值,没有人知道什么是正确的值。
  2. 想象一下,$test应该存储有关某事的信息,比方说:球的数量。一切都很好,直到有这样一个变量,它存储它想要存储的东西。但是,如果您决定删除该变量或将其用于其他目的,会发生什么?呸,致命错误突然冒出来!你不知道发生了什么,一切正常,你只是改变一个变量的值,一切都崩溃了。