PHP - 常量的目的?

时间:2012-06-29 01:54:56

标签: php oop constants globals

使用常量的目的究竟是什么(在PHP中)?我理解它们是如何工作的,但在哪种情况下它们比全局变量更可取?如果有的话,变量不会更灵活,因为它们可以放在字符串中吗?

我在网上搜索过,但我发现的只是定义 - 而不是使用其中一种的实际原因。任何人都可以帮助我理解使用其中一个的好处吗?

2 个答案:

答案 0 :(得分:3)

  

在哪种情况下它们比全局变量更可取?

常量不会改变。不可改变的全球状态优于其可变对应物;通过这种方式,您的状态在一个位置定义,并且永远不会更改脚本的过程。除非使用runkit代码,否则无法以某种方式更改状态。

此外,必须使用global关键字在函数内部声明全局变量,尽管技术上是声明,尽管更多的类型 - 工作比我假设的全局更好:)

答案 1 :(得分:2)

常数是可靠的。它不会改变。 比如说您正在编写其他人可以使用的类库。 假设您想将Pi用于5个小数位,并且出于任何原因,您不希望将其作为带有getter的私有变量。

所以你做了

   Class Foo {

       public $pi = 3.14159;
   }

现在有些人正在意外地使用你的课程

$foo->pi = 4;

那会搞砸一切。 相反,你做了

const $pi = 3.14159;

现在你知道它不会改变,也不会搞砸。此外,开发人员会知道您已将其定义为特定值。