如何定义变量const或static

时间:2016-01-22 09:14:35

标签: php

我正在为Web项目创建一个安装页面,以便在它生效之前定义所有配置变量和常量。我考虑将这些配置变量保存在数据库中,但项目经理希望将它们保存在文件中。所以出现了我的问题。如何定义这些变量,使用const或define将适用于此作业? 实施例

    <?php
$email_parameter="example@stackoverflow.com"//we need to set this at install.php page and keep it that way
?>

4 个答案:

答案 0 :(得分:1)

您可以使用模式注册表

nil

答案 1 :(得分:0)

您需要的是define

define('__CONSTANT_NAME__', 'example@stackoverflow.com');

答案 2 :(得分:0)

定义,定义('const_name','const_value')

  • 无处不在全球(!),
  • 比const更灵活(至少使用较旧的PHP版本)。

<强>常量

  • 是(至少在较旧的PHP版本中)仅在类定义中可用。

<强>但是

  • 您不能定义构造,如数组,对象等(除非您已经在使用PHP版本7。
  • 定义不尊重名称空间(尽管您可以区分自己:“ns1 / ns2 / constant_name”

所以,我建议你的安装脚本写一个配置文件,例如 config.inc 包含收集值的 define 语句。然后让运行时脚本包含(执行)它: require_once()

如果(可能更晚)构造类似数组应该初始化,安装脚本也可以添加这些语句......以及更多(甚至定义类)。

执行(而不是阅读)配置文件

  • 主要优点:可以包含任何可执行语句,例如定义和初始化数组。因此,如果需要,可以使用任何(甚至复杂的)设置构造
  • 主要缺点:更容易出错,因为当更改引入语法错误时它可能会失败,并且它可能会使用更多的系统资源

最后,我从未测量过执行和读取配置文件之间的巨大差异。并且 - 由于配置文件是由安装脚本编写的,而不是手动修改,因此插入语法错误的方面并不重要。

答案 3 :(得分:0)

好吧,我检查了你所有的答案,我感谢你,帮助我为我找到了正确的道路(至少有一个满足我的“项目经理”。)。我最终得到了以下解决方案:(那些价值观是例如)

   $f=fopen("config.php","w");
   $database_inf="<?php
     define('DATABASE_HOST', '".$database_host."');
     define('DATABASE_NAME', '".$database_name."');
     define('DATABASE_USERNAME', '".$database_username."');
     define('DATABASE_PASSWORD', '".$database_password."');
     define('ADMIN_NAME', '".$admin_name."');
     define('ADMIN_PASSWORD', '".$admin_password."');
     ?>";
  if (fwrite($f,$database_inf)>0){
   fclose($f);
  }

这只是一个例子来说明我是怎么想出来的。首先,我创建并安装php,并在没有配置文件设置时为该页面设置默认URL路由。然后我问用户输入的实际值并将它们保存在变量中。最后,我创建了一个配置文件并将其打包。我希望这可以帮助一些处理类似情况的其他人。