php技術PHP中傳值賦值和引用賦值詳解

2022-03-21 23:02:07 字數 754 閱讀 7804

1.變數間的賦值方式

$a = 變數值;

$b = $a;

將a變數的值賦值給b變數有這種傳值方式:

1. 傳值賦值

2. 引用賦值

1.2. 傳值賦值

將$a變數的值複製出乙份存放到$b變數中.

修改$a和$b的值相互不會影響.因為他們各自指向自己的記憶體區域.

1.3. 引用賦值

將$a變數引用複製出乙份作為$b變數的引用.兩個變數的引用指向同乙個記憶體空間.

通過&符號表示在賦值過程值使用引用賦值.

修改$a,$b的值都是修改值空間.會相互影響兩個變數的值.

1.4. 在php中物件型別預設的就是引用賦值

在php中的物件是引用資料型別,預設情況下就使用引用賦值. 所以在賦值過程中不需要通過&符號來指定引用傳遞.

這裡肯定有同學質疑obj->name怎麼會是張三呢?請看以下**:

1.5. 在php中陣列型別預設的就是傳值賦值

在php中的陣列預設情況下就使用傳值賦值. 如需使用引用賦值需要通過&符號來指定.

預設傳值賦值:

通過&指定引用賦值:

1.6. 選擇哪種賦值方式呢?

如果變數a指向的記憶體儲存大量資料,將變數a賦值給變數b,建議使用引用賦值,這樣可以節約記憶體的使用率.但b變數值的改變就會影響到a.

1.7. 引用賦值的使用場景

1. 變數賦值

2. 函式對外部變數值的改變.

3. foreach中改變陣列中元素的值

PHP開發技術面試題之PHP簡述題

2 你如何訪問和設定乙個類的屬性?3 在http 1.0中,狀態碼401的含義是 如果返回 找不到檔案 的提示,則可用 header 函式,其語句為 4 談談asp,php,jsp的優缺點?5 js表單彈出對話方塊函式是?獲得輸入焦點函式是?6 你如何訪問和設定乙個類的屬性?7 寫出發貼數最多的十個...

PHP面試題 更新中

header content type text html charset utf 8 php基本面試題 定期更新 關於php排序演算法,在本人的 php排序演算法大全 經典 中可以找到,裡面列舉了氣泡排序,快速排序,插入排序,選擇排序,每種排序演算法都支援公升序 降序 class base c u...

PHP面試題熱源技術部

1 我們為什麼要雇請你呢?2 你對加班有什麼看法?3 資料庫中的事務是什麼?4 用php列印出前一天的時間格式是2006 5 10 22 21 21?5 能夠使html和php分離開使用的模板?6 優化mysql資料庫的方法?7 include和require的區別是什麼?為避免多次包含同一檔案,可...