当extract()用于具有默认键值(0,1,2,...)的数组时会发生什么

时间:2015-09-27 09:11:12

标签: php

我之前没想过这么多想法但是最近尝试了一个示例代码来解决在使用默认键值的数组上使用extract()时会发生什么,它应该如何在那里工作。

    $testArray = array("apple", "ant", "book", "bag");
    extract($testArray);

    print_r($testArray);

    echo "${1}";

应用extract()后存储的值为apple,ant,book和bag。

这是一个简单的问题,但有人请帮我解决。

2 个答案:

答案 0 :(得分:2)

如果你没有通过旗帜;的没有即可。如果没有标志,则提取仅在传递关联数组时才有效。

来自documentation

  

您必须使用关联数组;除非使用 EXTR_PREFIX_ALL EXTR_PREFIX_INVALID ,否则数字索引数组不会产生结果。

所以你可以传递一个数值数组,但是你必须为变量名传递一个标志和一个前缀。前缀将添加到无效变量名称以及下划线:

{{1}}

eval.in

答案 1 :(得分:1)

因为它在你的代码中它不会创建任何变量,因为没有定义的键,所以键是0,1,2 ...因此,无效的变量名将阻止它们被提取。

如果您使用EXTR_PREFIX_ALL或EXTR_PREFIX_INVALID为您的密钥添加前缀以使其成为有效的变量名称,那么您可以在

中看到它们
Gulp