我目前正在编写一个网站(使用 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()
返回?
最佳答案
如果您尝试使用一个不存在的常量,PHP 会自动假设它是一个字符串,这就是您看到
VERSIONXXX
的原因。如果您的错误报告处于适当的级别,IIRC 会发出警告。这里最好的解决方案是确保您的代码使用正确的常量名称。
如果您知道常量的名称,直接使用它是最简单/最好的。
回显 MY_CONSTANT
如果您不知道常量的名称(例如,它的名称在变量中),请使用constant()
:
$name = 'MY_CONSTANT'; echo constant($name);
关于php - 何时以及如何在 PHP 中使用常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8099530/