這2個變數在代碼中是如何被利用的?
$run1 & $run2
我被告知他們存盤函式的結果。 但是echo命令并沒有利用它們。 是不是因為代碼中使用了 "assign by reference",所以它們需要存在? 或者這些東西的最終目的是什么
。function f1(& $array_para)
{
$array_param["a"] = "change"。
}
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"/span>] 。" " 。$arr2["a"]。
uj5u.com熱心網友回復:
它們現在沒有被利用,只是被填充。
如果你想看到輸出,在第一個回聲下添加這個
print_r($run1)。
print_r($run2)。
我使用 "print_r "是因為它將輸出整個陣列,echo將列印 "Array()"。
如果你想從echo中看到 "漂亮的列印",請使用:
echo '<pre> ';
print_r($run1)。
echo '</pre> ';
"pre "將以更容易閱讀的方式格式化輸出! :)
uj5u.com熱心網友回復:
f1沒有回傳任何東西,return陳述句丟失。 f2確實回傳了f1的結果,即沒有。因為f1沒有回傳任何東西。
f1被用來通過參考傳遞值,這意味著改變的是實際的陣列$array_param["a"]而不是函式的回傳。這將用所需的值來修改原始陣列。
如果你在f1上添加回傳值
function f1(& $array_para)
{
$array_param["a"] = "change"。
return $array_param;
}
這將解決這個問題,你將有兩個地方的變數值相同。 例如,運行f1后:
$arr1 = ["a"/span> => "Tadpole"]; // equals changed。
$run1 = f1($arr1); //等于改變了。
一切都取決于你想如何編碼,但由于缺少回傳值,所以無法作業。
快樂編碼。
編碼愉快。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/309276.html
標籤:
上一篇:如何在PythonPandas中創建帶有引數可以為空的條件的函式?
下一篇:python中的自我和引數傳輸
