PHP我应该使用CONSTANTS还是VARIABLES

时间:2014-04-29 01:12:59

标签: php

我想知道何时应该使用常量,何时应该使用PHP中的变量 E.g。

define ("haha", "too bad");
$haha = "too bad";

5 个答案:

答案 0 :(得分:3)

首先,我建议不要使用常量来配置这些建议。这将使您的代码难以测试(针对测试环境),而且在您必须编辑应用程序配置代码的情况下部署代码非常不寻常。

您大部分时间都会使用变量。这会带来什么时候应该使用常量的问题。我想到了这些观点:

  • 使用常量Magic numbers
  • 使用常量来表示一组定义的不同值的语义,其中值本身并不重要。例如。这些常量将具有什么价值并不重要:STATE_NEWSTATE_OLDSTATE_DELETED

答案 1 :(得分:0)

将常量用于您只定义一次的值,并且您知道在脚本中不会再次更改它们,通常是一些配置信息,例如
define("MYSQLUSER", "root"); define("MYSQLHOST", "localhost"); ...

为脚本中的所有动态值使用变量,例如
$a = 1 * 2; $b = $a % 4;

此外,您可能需要查看PHP手册或您正在学习PHP的资源,因为这非常基础,应该可以通过Google轻松找到。

答案 2 :(得分:0)

DEFINE是一个常量,常量是全局的,可以在任何地方使用。它们也无法重新定义,哪些变量可以。

我通常使用DEFINE for Configs,因为没有人可以在事后处理它,我可以在任何地方查看它而不需要全局查询,以便于检查。

参见手册: Constants | Variables

字体:DEFINE vs Variable in PHP

正如我们的朋友@TecBrat在回顾中提醒的那样,PHP开发人员也使用magic numbers的常量。通常用于比特掩码值。

答案 3 :(得分:0)

我对我知道不会改变的事情使用常数,并且对代码更重要'

例如,我在定义工作目录时使用它:

$base_url = '/subfolder/';
$doc_root = $_SERVER['DOCUMENT_ROOT'].$base_url;
define("DOC_ROOT", $doc_root);

后来,当我必须包含文件......

include(DOC_ROOT.'includes/header.php');

这是个人偏好。

答案 4 :(得分:0)

两者之间的主要区别是常量不能在运行时更改;换句话说,一旦设置常量就不能赋值。对于那些只会很少变化的事情来说,这些都很棒。如果您知道任何Java:PHP常量与那里的公共静态最终变量非常相似。

另一方面,变量没有这样的限制。

如果有任何更改,您需要在执行脚本期间更改值,您需要使用变量。