【问题标题】:Hardcode array for reuse in php file?用于在 php 文件中重用的硬编码数组?
【发布时间】:2016-04-15 02:22:23
【问题描述】:

我不知道这是否甚至被称为“硬编码”,但我想构建一个数组(例如从 mysqli_fetch_assoc 查询)并将其输出以在 config.php 文件中重复使用。

所以 mysql 的输出将是:

[structure] => Array
    (
        [0] => Array
            (
                [structureid] => 23
                [active] => 1
            )

        [1] => Array
            (
                [structureid] => 25
                [active] => 1
            )

它会像这样存储在 config.php 文件中:

$structure[0]['structureid'] = 23;
$structure[0]['active'] = 1;
$structure[1]['structureid'] = 25;
$structure[1]['active'] = 1;

有没有简单快捷的方法来完成这项工作?

正如有人指出的那样,我可以使用 json 文件来解决这个问题——我已经在这样做了——但我想检查是否会有另一种(快速)的方式来做这件事,如上所述。

【问题讨论】:

  • 为什么不使用foreach循环?
  • 因为它存储在数据库中,为什么不在需要的时候查询呢?
  • @Dagon:对于这种特殊情况,它需要导出才能在没有数据库的情况下运行 - 我有一个通过 json 的解决方案,但我想知道是否有另一种方法 没有 遍历一个 json 文件。
  • 如果它是静态的,你可以存储在 cookie 中

标签: php mysql


【解决方案1】:

您可以使用var_export(),创建一个可读(和代码内可重用)数组,然后您可以将其放入配置文件中:

$reusableCode = var_export($yourArray, true);

或者只是输出它:

var_export($yourArray);

你可以把它放在一个带有返回的配置文件中,像这样:

return array(
    'your' => 'values'
);

然后从您的代码中require

$configData = require('yourConfigFileWithTheArray.php');

【讨论】:

  • 我希望这能奏效——因为这将是我找到的最佳答案,但尝试以这种方式进行,然后使用 get_defined_vars() 来显示它们——不起作用。有什么我忽略的吗?
  • @Taapo 好吧,你到底是怎么包含它的,你记得在文件中添加return 吗?错误报告是否开启?
  • 我错了。我忘了创建一个变量来读取数组。现在可以使用 - 非常有用。
【解决方案2】:

我最初误读了您的问题,

所以您想将mysql 资源存储到文件中?

您提到您使用JSON 是为了解决这个问题。

这是一个很好的方法,另一种方法是序列化/反序列化对象而不是将它们保存到文件中。 JSON 解决方案简单易读。

例子:

$data = serialize($rows);
file_put_contents('data.txt', $data);

$data = file_get_contents('data.txt');
$rows = unserialize($data);

但是您将无法读取序列化的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-17
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多