【问题标题】:How to make varibles from array keys如何从数组键中生成变量
【发布时间】:2017-01-03 22:19:29
【问题描述】:

我正在尝试将数组的键提取为变量。我有以下代码:

01 |    $array = [
02 |        "bantya" => "BANTYA",
03 |        "sontya" => "SONTYA",
04 |        "niltya" => "NILTYA"
05 |    ];
06 |
07 |    function makeVar ($array) {
08 |        foreach ($array as $key => $value) {
09 |            $$key = $value;
10 |        }
11 |        echo $bantya;
12 |    }
13 |
14 |    makeVar($array);
15 |    echo $bantya;

问题是,第 11 行正确地回显了“BANTYA”,但第 15 行却不正确。它说:

Notice: Undefined variable: bantya in file\path on line 15

我的问题是,为什么会显示这个错误?声明makeVar函数后,如何使第15行全局输出“BANTYA”(不在function makeVar($array)范围内)?

提前谢谢..

【问题讨论】:

  • 糟糕。使用extract():php.net/manual/en/function.extract.php
  • 这似乎没用。你仍然可以通过echo $array['bantya']获得BANTYA
  • 分配给$GLOBALS[$key] 而不是$$key 以创建一个全局变量。或者只使用extract()
  • 是的,使用 extract 解决了这个问题。 echo $array['bantya'] 是一个解决方案,但输入时间更长。
  • 哈哈,打字时间长了。

标签: php arrays function scope global-variables


【解决方案1】:

我认为这会有所帮助。在 PHP 中使用 extract()。请参阅下面的示例

$array = ( "bantya" => "BANTYA", "sontya" => "SONTYA", "niltya" => "NILTYA" ); extract($array); var_dump($bantya);

你获得新的变量:$bantya,$sontya,$niltya

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2021-06-12
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多