PHP 存储函数

PHP Storing functions

这两个变量如何在代码中使用?:

$run1 & $run2

有人告诉我他们存储函数结果, 但是 echo 命令不使用它们。 是不是因为代码使用“按引用分配”,所以它们需要在那里? 或者这些的最终目的是什么

function f1(&$array_para)
{
    $array_param["a"] = "changed";
}

function f2($array_param)
{
    $return_arr = f1($array_param);
    return $return_arr;
}

$arr1 = ["a" => "Tadpole"];
$arr2 = ["a" => "Lily"];
$run1 = f1($arr1);
$run2 = f2($arr2);
echo $arr1["a"] . " " . $arr2["a"];

它们不像现在那样被使用,只是被填充了。

如果要查看输出,请在第一个 echo 下添加此内容

print_r($run1);
print_r($run2);

我使用“print_r”因为它将输出整个数组,echo 将打印“Array()”。

如果你想从回显中看到“漂亮的印刷品”,请使用:

echo '<pre>';
print_r($run1);
echo '</pre>';

“pre”将以更易于阅读的方式格式化输出! :)

f1 没有 return 任何东西,缺少 return 语句。 f2 执行 return f1 的结果 none。因为 f1 没有 return 任何东西。

f1 用于通过引用传递值,这意味着更改发生在实际数组 $array_param["a"] 上,而不是函数的 return 上。这将使用所需的值修改原始数组。

如果在 f1

上添加 return
function f1(&$array_para)
{
    $array_param["a"] = "changed";
    return $array_param;
}

这会修复它,您将有 2 个地方的变量值相同。 例如在 运行 f1:

之后
$arr1 = ["a" => "Tadpole"]; // equals changed
$run1 = f1($arr1); // equals changed

一切都取决于你想如何编码,但它不起作用,因为缺少 return。

编码愉快。