php - 何时以及如何在 PHP 中使用常量?

标签 php constants php4

我目前正在编写一个网站(使用 PHP4)。我计划将值保存在常量中,这些值在运行时不会改变。例如,这些是数据库登录数据的版本号。

问题 1:在常量中保存数据是否会引起任何(安全相关的)问题?

目前我执行以下操作来定义和调用常量:

define("VERSION",   "1.0");
echo "Current version: ".VERSION."."; // Result: "Current version: 1.0."

有一件事让我很恼火:如果没有定义常量,则返回“错误”的变量名,而不是例如NULL.

define("VERSION",   "1.0");
echo "Current version: ".VERSIONXXX."."; // Result: "Current version: VERSIONXXX."

当我不小心输入错误的常量名称时,我发现一个错误消息和返回值“NULL”的解决方案是使用函数 constant():

define("VERSION",   "1.0");
echo "Current version: ".constant("VERSIONXXX")."."; // Result: "Current version: ."

问题 2:我可以用不同的方式防止 PHP 返回不存在的变量的名称吗?

问题 3:PHP 中常量的值是否应该始终使用函数 constant() 返回?

最佳答案

  1. 如果您尝试使用一个不存在的常量,PHP 会自动假设它是一个字符串,这就是您看到 VERSIONXXX 的原因。

  2. 如果您的错误报告处于适当的级别,IIRC 会发出警告。这里最好的解决方案是确保您的代码使用正确的常量名称。

  3. 如果您知道常量的名称,直接使用它是最简单/最好的。 回显 MY_CONSTANT
    如果您不知道常量的名称(例如,它的名称在变量中),请使用 constant():

    $name = 'MY_CONSTANT';
    echo constant($name);

关于php - 何时以及如何在 PHP 中使用常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8099530/

相关文章:

php - 如何从多个 mySQL 表中进行选择并输出到 PHP?

php - 无法验证 oauth 签名和 token

php - 查找 PHP 中何时引入内部(内置)函数和预定义常量(版本号)

可以将字符串分配给 char 指针,而不会变成文字吗?

php - 重新声明功能适用于旧服务器但不适用于新服务器

php - MySQL 插入查询因数据过多而失败

php - 如何显示 id 等于 1,2,3,4 的所有记录

php - 需要有关 mysql 查询的帮助,以根据请求使用不同的可能组合搜索所有列

Java-Eclipse : Externalize Strings?

c++ - 从非常量对象调用 const 函数