首頁 每日程式設計 PHP知識 PHP兩種傳值方式,值傳遞與引用傳遞

PHP兩種傳值方式,值傳遞與引用傳遞

Apr 30, 2020 pm 07:05 PM
1

PHP中值傳遞和引用傳遞的區別

#變數傳值是指:將一個變數的值“傳遞”給另一個變數。

有且只有兩種傳遞資料的方式:值傳遞引用傳遞。 php預設的一般情況下,都使用的是值傳遞。

下面讓我們一起來看看這兩種傳遞方式到底有哪些不同:

值傳遞:

就是將右邊變數的「資料值」本身,複製一份,然後賦值給左邊變數

值傳遞(passl-by-value)過程中,被調函數的形式參數作為被調函數的局部變數處理,即在堆疊中開闢了記憶體空間以存放由主調函數放進來的實參的值,從而成為了實參的一個副本。值傳遞的特徵是被調函數對形式參數的任何操作都是作為局部變數進行,不會影響主調函數的實參變數的值。

舉例:

$v1 = 1;
$v2 = $v1;
登入後複製

值傳遞後,兩個變數是互不影響的,互相獨立

<?php
//值传递
$v1 = 10;
$v2 = $v1;
echo "v2的值为:".$v2;//10
$v1 = 11;
echo "<br>v2的值为:".$v2;//10
登入後複製

PHP兩種傳值方式,值傳遞與引用傳遞

##引用傳遞:

是將右邊變數對資料的參考關係,傳給左邊的變數

引用傳遞(pass-by-reference)過程中,被調函數的形式參數雖然也作為局部變數在堆疊中開啟了記憶體空間,但是這時存放的是由主調函數放進來的實參變數的位址。被調函數對形參的任何操作都被處理成間接定址,即透過堆疊中存放的位址存取主調函數中的實參變數。正因為如此,被調函數對形參做的任何操作都影響了主調函數中的。

<?php
//引用传递
$v1 = 10;
$v2 = &$v1;
echo "v2的值为:".$v2;//10
$v1 = 11;
echo "<br>v2的值为:".$v2;//11
登入後複製

PHP兩種傳值方式,值傳遞與引用傳遞

#總結:

#這裡主要考察的就是類似傳值,傳引用的問題。了解到傳值是重新開啟記憶體空間,相當於把原值複製一份,和原值是彼此獨立的。傳引用(指標)只是在原始記憶體區塊加了個指向,引用的值變了,就修改了指向的記憶體位址值,所有指向的引用全部變了。

以上是PHP兩種傳值方式,值傳遞與引用傳遞的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)