3

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

我在网上搜索过,但我发现的只是定义——而不是使用其中一个的实际原因。谁能帮助我了解使用其中一种的好处?

4

2 回答 2

3

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

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

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

于 2012-06-29T01:56:12.413 回答
2

常数是可靠的。它不会改变。例如,您正在编写一个其他人可以使用的类库。假设您想使用 Pi 到小数点后 5 位,无论出于何种原因,您都不想将其设为带有 getter 的私有变量。

所以你也是

   Class Foo {

       public $pi = 3.14159;
   }

现在有些人不小心使用了你的课

$foo->pi = 4;

那么这将搞砸一切。所以相反,你做

const $pi = 3.14159;

现在你知道它不会改变,也不会搞砸。另外,开发人员会知道您出于某种原因将其定义为特定值。

于 2012-06-29T02:03:34.577 回答