在 php 中,通過引用傳遞可以修改函數(shù)外已傳遞的原始變量,語法為在參數(shù)名前加上 & 符號(hào)。例如,按引用傳遞數(shù)組后,函數(shù)內(nèi)的修改可以影響原始數(shù)組。
掌握 PHP 引用傳遞:提升函數(shù)參數(shù)傳遞能力
在 PHP 中,傳遞給函數(shù)的參數(shù)默認(rèn)情況下是 按值傳遞 的,這意味著函數(shù)內(nèi)的任何修改都不會(huì)影響原始變量。但是,可以通過引用傳遞來解決這個(gè)問題,讓函數(shù)可以對(duì)原始變量進(jìn)行直接修改。
語法:
要按引用傳遞參數(shù),需要在參數(shù)名前加上 & 符號(hào):
function function_name(&$param) { // 操作 $param }
登錄后復(fù)制
實(shí)戰(zhàn)案例:
假設(shè)有一個(gè)數(shù)組 $array,我們想編寫一個(gè)函數(shù)來將數(shù)組的第一個(gè)元素設(shè)置為 “Hello”:
function set_first_element($array) { $array[0] = "Hello"; } $array = [1, 2, 3]; set_first_element($array); var_dump($array); // 輸出:[1, 2, 3]
登錄后復(fù)制
由于數(shù)組 $array 是按值傳遞的,因此函數(shù)內(nèi)的修改不會(huì)影響原始數(shù)組。
解決方法:
我們可以通過引用傳遞數(shù)組來讓函數(shù)修改原始數(shù)組:
function set_first_element(&$array) { $array[0] = "Hello"; } $array = [1, 2, 3]; set_first_element($array); var_dump($array); // 輸出:[Hello, 2, 3]
登錄后復(fù)制
現(xiàn)在,$array 數(shù)組被成功修改了。