为什么在数组内添加数组的此功能不起作用?

时间:2019-06-14 04:23:29

标签: php arrays function multidimensional-array nested

我创建了一个数组。然后,我调用了一个函数。该函数在该数组内添加了另一个数组。但是当我print_r主数组时,它返回一个空数组。请注意,使用function的原因是我打算多次调用它。

PHP

$myarray = array();
myfunc();
function myfunc() {
    $a = 1;
    $b = "my name";
    $myarray[] = array(
        'a'=>$a,
        'b'=>$b
    );
}
print_r($myarray);

1 个答案:

答案 0 :(得分:1)

实际上,您必须从函数中return数组,将其捕获到变量并打印该变量。

<?php
function myfunc() {
    $myarray[] = array(
        'a'=>1,
        'b'=>"my name"
    );

    return $myarray;
}
$myarray = myfunc();
print_r($myarray);

输出:-https://3v4l.org/7vCmC

或者您可以使用 Passing by Reference

<?php
$myarray = array();
function myfunc(&$myarray) {
    $myarray[] = array(
        'a'=>1,
        'b'=>"my name"
    );
}
myfunc($myarray);
print_r($myarray);

输出:-{https://3v4l.org/R9JYL

注意:-函数内部的变量与函数外部的同一变量没有关系,直到将其作为引用传递[第二个答案]。这属于 功能范围