php基礎 3 變數傳值

2021-10-23 16:16:02 字數 1301 閱讀 7644

變數傳值定義:將乙個變數賦值給另外乙個變數

變數傳值一共有兩種方式:值傳遞,引用傳遞

值傳遞:將變數儲存的值複製乙份,然後將新的值給另外乙個變數儲存。(兩個變數值暫時相同但是變數位址不同)

//好比我家來了乙隻野貓,在我家也有乙隻(值相同,都是貓),但是我的貓和野貓的家是來自不同的地方。(位址可變)

引用傳遞:將變數儲存的值所在的記憶體位址,傳遞給另外乙個變數:兩個變數指向同一塊記憶體空間。(兩個變數位址一樣指向同乙個數值)

//現在野貓找到新主人,不回去了(位址相同,現在都是我家的),既然是我家的,那麼就不分野貓家貓,都是我的寵物貓(值暫時都相同,都是我的寵物貓)

在記憶體中,通常有以下幾個分割槽

棧區:程式可以操作的內容部分(不存資料,執行程式**),少但是快

**段:儲存程式的記憶體部分(不執行)

資料段:儲存普通資料(全域性區和靜態區)

堆區:儲存複雜資料,大但是效率低

值傳遞:(如圖)

1、**裝載:從指令碼檔案中將**讀取出來,進行編譯,將編譯的結果存放在**段(位元組碼)

2、**執行:從**段中一行一行的執行**

2.1 執行$a=1:在棧區開闢一塊記憶體儲存$a,在資料段中開闢一塊記憶體儲存值1,然後將1所在的位置賦值給a變數

2.2 執行$b=$a:棧區開闢儲存$b:發現是賦值運算,會取出$a的值,重新在資料段儲存,記憶體新增位址賦值給b變數

2.3 執行$b=2

3、指令碼執行結束:系統會**所有的記憶體(棧區、**段)

引用傳遞:(如圖)

語法:$新變數=&$老變數

1、**裝載:從指令碼檔案中將**讀取出來,進行編譯,將編譯的結果存放在**段(位元組碼)

2、**執行:從**段中一行一行的執行**

2.1 執行$a=1:在棧區開闢一塊記憶體儲存$a,在資料段中開闢一塊記憶體儲存值1,然後將1所在的位置賦值給a變數

2.2 執行$b=&$a:棧區開闢儲存$b:發現是賦值運算,而且是引用賦值,會取出$a所儲存的記憶體位址,將記憶體位址賦值給b變數(好處是資料的空間被很好的利用,不用重複)

2.3 執行$b=2

3、指令碼執行結束:系統會**所有的記憶體(棧區、**段)。

php 函式變數作用域(傳值與傳應用)

php中變數預設是傳值賦值,既當將乙個表示式的值賦予乙個標量時,整個原始表示式的值被賦值到目標變數。這意味著,當乙個變數的值賦予另外乙個變數時,改變其中乙個變數的值,將不會影像另外乙個變數。php也提供了另外一種方式給變數賦值 引用賦值。這意味著新的變數簡單引用 指向 原變數位址 了原始變數。改動新...

php引用傳值

from php的引用 就是在變數或者函式 物件等前面加上 符號 在php 中引用的意思是 不同的名字訪問同乙個變數內容.與 語言中的指標是有差別的 語言中的指標裡面儲存的是變數的內容在記憶體中存放的位址 變數的引用 php 的引用允許你用兩個變數來指向同乙個內容 a abc b a echo a ...

PHP後台傳值

前台資料往後台傳值,往往是新手最頭痛的,最近在學習thinkphp的時候,也遇到了這種問題,總結一下,往不足之處請大家指教。一 前台介面 往後台傳值有兩種方式,一種是get,另一種是post,新手入門,不管什麼方式吧,往後台傳值成功就可以了。首先,寫乙個from表單,這個 就往後台傳過去了,傳過去後...