我正在讨论PHP的问题,只是碰到了这种定义常量的方式,但没有在文件中进行物理编码。我猜想像所有变量一样,这些动态创建的变量仅在代码运行时存在。我正在寻找有关其工作原理的一些解释。
//or we can put them in an associated array
$db['db_host'] = "localhost";
$db['db_user'] = "root";
$db['db_pass'] = "";
$db['db_name'] = "cms";
foreach($db as $key => $value) {
define(strtoupper($key),$value);
}
//method one of connecting to database
$connection =
mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
答案 0 :(得分:0)
您是正确的。在运行此代码后,可以创建常量并可以随时使用它们。
foreach($db as $key => $value) {
define(strtoupper($key),$value);
}
您将可以按以下方式访问它们:
DB_HOST
DB_USER
DB_PASS
DB_NAME
循环绝对是多余的,这是写出这些常量的一种不好的方法。它们应该只定义如下:
define('DB_HOST', '127.0.0.1');
define('DB_USER', 'mydbuser');
...
我真的不明白为什么本教程要求您循环访问关联数组以将其作为常量进行访问。我只能假定它试图通过使用快捷方式来向您展示如何同时定义关联数组和常量。