使用常量的目的究竟是什么(在PHP中)?我理解它们是如何工作的,但在哪种情况下它们比全局变量更可取?如果有的话,变量不会更灵活,因为它们可以放在字符串中吗?
我在网上搜索过,但我发现的只是定义 - 而不是使用其中一种的实际原因。任何人都可以帮助我理解使用其中一个的好处吗?
答案 0 :(得分:3)
在哪种情况下它们比全局变量更可取?
常量不会改变。不可改变的全球状态优于其可变对应物;通过这种方式,您的状态在一个位置定义,并且永远不会更改脚本的过程。除非使用runkit
代码,否则无法以某种方式更改状态。
此外,必须使用global
关键字在函数内部声明全局变量,尽管技术上是声明,尽管更多的类型 - 工作比我假设的全局更好:)
答案 1 :(得分:2)
常数是可靠的。它不会改变。 比如说您正在编写其他人可以使用的类库。 假设您想将Pi用于5个小数位,并且出于任何原因,您不希望将其作为带有getter的私有变量。
所以你做了
Class Foo {
public $pi = 3.14159;
}
现在有些人正在意外地使用你的课程
$foo->pi = 4;
那会搞砸一切。 相反,你做了
const $pi = 3.14159;
现在你知道它不会改变,也不会搞砸。此外,开发人员会知道您已将其定义为特定值。