【问题标题】:How can I view the array of constants defined by the foreach loop?如何查看由 foreach 循环定义的常量数组?
【发布时间】:2019-12-07 08:35:17
【问题描述】:

也许这是一个简单的问题,但我刚刚开始,想知道如何通过循环创建所有参赛者 var_dump?这是我的代码。

$database['db-host'] = 'localhost';
$database['db-user'] = 'root';
$database['db-pass'] = 'root';
$database['db-name'] = 'my_db';


foreach ($database as $details => $values) {

    define(strtoupper($details), $values);

}

我可以使用 var_dump('DB_USER'); 单独查看它们,但想知道如何将它们全部查看为由 foreach 循环创建的数组?

谢谢

【问题讨论】:

  • 不确定stackoverflow.com/questions/1864067/… 是不是你想要的?
  • @NigelRen 谢谢,这显示了所有这些定义,我得到了一个巨大的列表,有什么方法可以只显示我用循环创建的那个?
  • @AbdUrRehman:为什么你想要作为组,为什么不把这个变量 $database 传递给你想要的全局变量?
  • @AbdUrRehman:使用db_host 下划线代替db-host 破折号
  • @RishiRaut 谢谢,我也注意到了,最好使用下划线而不是破折号。

标签: php


【解决方案1】:

理论上您可以说添加的常量是$database 中定义的常量。但作为如何找到循环中定义的常量的严格答案,您可以存储循环之前定义的常量,然后查看差异(使用array_diff())...

$database['db-host'] = 'localhost';
$database['db-user'] = 'root';
$database['db-pass'] = 'root';
$database['db-name'] = 'my_db';

$beforeConstants = get_defined_constants();
foreach ($database as $details => $values) {
    define(strtoupper($details), $values);
}
$afterConstants = get_defined_constants();

print_r(array_diff($afterConstants, $beforeConstants));

应该给

Array
(
    [DB-HOST] => localhost
    [DB-USER] => root
    [DB-PASS] => root
    [DB-NAME] => my_db
)

【讨论】:

  • 你说得对,但我想为什么这么多运动,他可以将数组用作全局并将这些值作为一个数组获取。即 (define('DB_SETTINGS',$database)) 并将这些值作为DB_SETTINGS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 2019-01-21
相关资源
最近更新 更多