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