2012-04-30 76 views
2
使用下划线

我打算揭露一些常见的变量在我的剧本全局,我想知道如果下面的命名方案将被认为是不好的想法:用单下划线开头全球PHP变量

  1. $_some_var_
  2. 使用三重底线在像开头::像结束$___some_var

我知道PHP使用单下划线开头的超全局变量和双下划线的魔术方法,所以日不应该有任何冲突。还有什么可能会导致麻烦?这是否因为其他原因而被认为是不好的?

谢谢!

+5

是,使用全局变量被认为是不好的。也有一个*适当的*方式实现相同的东西,而不用全局变量 – zerkms

+1

@zerkms:我认为OP是询问下划线,而不是全局的用法......但是,全局变量是不好的! –

+0

为什么globals如此皱眉?根据我的理解,避免使用全局变量的唯一原因是为了避免命名冲突,是否有其他原因可以避免?顺便说一句,我这样做的原因是存储数据库读取,将在网页(用户信息)几乎所有地方使用,所以我认为这是有道理的阅读一次,并将其存储为全球。 – Peter

回答

1

这样不会引起任何问题。为了便于打字,您可能只想使用单下划线。在我的应用程序中,如果我必须引入这样的全局变量,我可以在函数内部和外部的许多脚本中使用这些全局变量,我使用$GLOBALSsuperglobal,因此很显然,被访问的变量是全局变量。

这也节省了必须在功能中使用global $somevar;。但是,根据您使用它们的频率,它的输入更多。

可能的值是constants还是它们实际上是可变的?

+0

我完全忘记了php全局变量不包含在本地范围内,你可能以后为我节省了一些调试时间,谢谢! – Peter

+0

:)优秀的,我提到它,因为我已经多次成为它的受害者。这很容易忘记! – drew010

0

如果你真的认为你需要全局状态,那么如何创建一个静态类呢?

class myVars { 

    static property $var1; 

} 
0

如果他们被视为常数然后使用: 定义(“CONSTANT_NAME”,值)

如果他们是真正的全局变量,那么一个约定是: $ mVariableName