91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php數組是引用類型嗎

發布時間:2022-09-21 09:33:37 來源:億速云 閱讀:153 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“php數組是引用類型嗎”,內容詳細,步驟清晰,細節處理妥當,希望這篇“php數組是引用類型嗎”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

php數組不是引用類型,而是值類型;數組賦值時會創建不同的變量(副本),因此修改另一個變量,并不會影響到數組本身。且PHP數組傳遞是值傳遞;在調用函數時通過將PHP數組作為實參賦給形參,在函數中修改,并不會影響到數組本身,說明此過程中的傳遞是值傳遞,數組變量并非指向此數組本身的引用。

本教程操作環境:windows7系統、PHP8.1版、DELL G3電腦

在PHP中,大部分變量類型,如字符串,整型,浮點,數組等都是值類型的,而類和對象是引用類型,在使用的時候,需要注意這一點。

PHP的變量在內存中是這樣存儲的,變量保存的并不直接是值的內容,而是地址。例如:

$a = 1;

我們看起來,似乎變量$a直接存儲了 1 這個值。而實際情況是,PHP解釋器創建了變量$a,將值:1 存入內存中的某個地方,再將值的地址存到變量$a中。

需要取值時,先找到變量$a中的地址,再根據地址找到變量的值。

往下看:

echo $a;

會輸出1,PHP解釋器會這樣完成這一樣代碼:找到$a中存儲的地址,根據地址找到存在內存某個地方的值,輸出到屏幕。

看似一行簡單的代碼,流程卻是這樣的。

再往下看:

$a = 1;
$b = &$a;

這里的變量$b 做了一個有趣的操作,&符號取出了$a變量中存儲的地址,并存儲到$b變量。

那么,如果使用下面代碼:

echo $b;

結果也將是輸出1,PHP解釋器先取出$b中存儲的地址,再根據地址找到值。如果我們做下面的操作:

$a = 2;
echo $b; //輸出2

會發現改變$a的值,$b也跟著變了。其實反過來,改變$b的值,$a的值也會跟這變。

到這一步,我們可以確定,變量$a和$b存儲了相同的地址,指向的值是一樣的。

那么,我們可以得出結論:它們表示的是同一個變量。

進一步總結,可以得出:如果兩個變量存儲了相同的地址,它們就是同一個變量。

了解了著一些內容,我們開始介紹值類型和引用類型。

我們先看下面的代碼:

$a = 1;
$b = $a;
$a = 2;
echo $b; //輸出 1

將$a的值賦給$b,改變$a的值后,$b的值依然不變,也就是說$a和$b是兩個不同的變量,指向不同的地址。這種賦值時會創建不同的變量的形式我們稱之為值類型。

再看:

class User{
 public $name = ‘Tome‘;
}
$a = new User;
$b = $a;
$a->name = ‘Jim‘;
echo $b->name; //輸出 Jim

同樣將$a的值賦給$b,改變$a后,$b也跟著變了,也就是說$a和$b是同一個變量,指向相同的地址。這種賦值時不會創建新的變量的形式我們稱之為引用類型。

php數組 值類型

PHP中數組傳遞是值傳遞而非引用傳遞。

在調用函數時通過將PHP數組作為實參賦給形參,在函數中修改,并不會影響到數組本身。

說明此過程中的傳遞為值傳遞,數組變量并非是指向此數組本身的引用,PHP數組本身以值的形式存在,同時形參是對數組的拷貝。

這點與其他一些語言不同(如c、Js等)很不相同,值得注意!

示例如下:

$arr = array(
    'name' => 'corn',
    'age' => '24',
);
test_arr($arr);
function test_arr($arr){
    $arr['name'] = 'qqyumidi';
}
print_r($arr); //result: Array ( [name] => corn [age] => 24 )

js代碼如下:

var arr = new Array('corn', '24');
test_arr(arr);
function test_arr(arr){
    arr[0] = 'qqyumidi';
}
console.log(arr);  //result:["qqyumidi", "24"]

如果需要對PHP中的值傳遞使用引用傳遞效果,可以在形參前面加上取地址符&。

$aa = 100;
test_vars($aa);
function test_vars(&$aa){
    $aa = 200;
}
print_r($aa);   //result: 200

讀到這里,這篇“php數組是引用類型嗎”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

司法| 全州县| 饶平县| 沈丘县| 万安县| 诏安县| 开平市| 伊春市| 保定市| 绥芬河市| 札达县| 英德市| 宝应县| 张家川| 刚察县| 万盛区| 盱眙县| 汉中市| 河曲县| 乐平市| 广宁县| 亳州市| 晴隆县| 新疆| 兰考县| 中江县| 威信县| 彭山县| 洪湖市| 通河县| 南开区| 嘉峪关市| 炉霍县| 库伦旗| 房产| 日喀则市| 宁津县| 安新县| 宁德市| 读书| 新巴尔虎左旗|