主頁 > 知識庫 > php 多個(gè)變量指向同一個(gè)引用($b = &$a)用法分析

php 多個(gè)變量指向同一個(gè)引用($b = &$a)用法分析

熱門標(biāo)簽:電銷機(jī)器人沒有效果怎么樣 江門回?fù)芡夂粝到y(tǒng) 杭州語音電銷機(jī)器人 天潤融通外呼系統(tǒng)好嗎 江西電銷機(jī)器人收費(fèi) 欣思維地圖標(biāo)注 泊頭在哪里辦理400電話 高德地圖標(biāo)注位置怎么標(biāo)注 高德地圖標(biāo)注店鋪收費(fèi)嗎

本文實(shí)例講述了php 多個(gè)變量指向同一個(gè)引用($b = $a)用法。分享給大家供大家參考,具體如下:

引用是什么?
引用就是多個(gè)變量指向同一個(gè)內(nèi)存區(qū)域地址。如我們經(jīng)常用的實(shí)例一個(gè)類,就是內(nèi)存中開辟了一個(gè)區(qū)域存儲(chǔ)實(shí)例的類,實(shí)例賦值給變量就是讓這個(gè)變量指向這個(gè)內(nèi)存區(qū)域。

多個(gè)變量指向同一個(gè)引用有什么好處?
節(jié)約了內(nèi)存空間,多個(gè)變量指向同一個(gè)內(nèi)存地址,在調(diào)用的時(shí)候多個(gè)變量都是指向的同一個(gè)內(nèi)存地址。

多個(gè)變量指向同一個(gè)引用的缺點(diǎn)
要注意使用安全,即是由于多個(gè)變量都是指向的同一個(gè)內(nèi)存地址,其中一個(gè)變量更改了某個(gè)屬性,其它的變量調(diào)用的時(shí)候都是用的已經(jīng)更改的實(shí)例。

在php 中我們?yōu)橐粋€(gè)變量賦值的時(shí)候會(huì)在內(nèi)存中開辟一個(gè)區(qū)域存儲(chǔ)該值。那么我們將這個(gè)變量賦值給另一個(gè)變量的時(shí)候會(huì)在內(nèi)存中重新開辟一個(gè)區(qū)域去存儲(chǔ)改值嗎? 我做了如下實(shí)驗(yàn)

?php
$d = "aaa";
$c = $d;
echo $c . "br />";
$d = "bbb";
echo $c . "br />";
/**
 * 執(zhí)行結(jié)果是
 * aaa
 * aaa
 */
?>

看到這里 不知道你理解了沒有,創(chuàng)建的變量$d 并為之賦初始值aaa 再將$d 賦值給$c,之后輸出$c 然后更改$d的值,在輸出$c。這個(gè)實(shí)驗(yàn)告訴我們,$d再給$c賦值的時(shí)候是在內(nèi)存中重新開辟了一個(gè)區(qū)域的。

那么,我們怎么才能讓$d和$c 都指向一個(gè)引用呢? 查了下資料 如下方法 讓兩個(gè)變量指向同一個(gè)內(nèi)存地址

?php
$a = "123";
$b = $a;
echo $b."br />";
$a = "456";
echo $b;
/**
 * 運(yùn)行結(jié)果如下
 * 123
 * 456
 */
?>

我更改了一下變量的名字。方便測試發(fā)現(xiàn)區(qū)別。在這里我們可以看到 $b=$a 其中符號的作用就是讓$b 指向的是$a的內(nèi)存區(qū)域,而不是重新開辟一個(gè)區(qū)域。所以當(dāng)更改$a的值的時(shí)候$b也會(huì)隨著變化。

前面我們實(shí)驗(yàn)的對象是基本字符串,現(xiàn)在我們來看下類是否遵從這個(gè)規(guī)則

?php
class Demo
{
  public $demo = "aaaa";
}
$demo1 = new Demo();
$demo2 = $demo1;
echo $demo2->demo . "br />";
$demo1->demo = "bbbb";
echo $demo2->demo . "br />";
/**
 * 運(yùn)行結(jié)果
 * aaaa
 * bbbb
 */
?>

我這里并沒有符號指定$demo2必須指向$demo1 的內(nèi)存區(qū)域,所以關(guān)于類,當(dāng)一個(gè)實(shí)例變量賦值給另一個(gè)變量的時(shí)候默認(rèn)就是兩個(gè)變量指向同一個(gè)引用;

php 的引用我覺得沒有 java的好用,也許是這門語言本身還在發(fā)展,很多處理還沒有那么方便完善。 java初去基本數(shù)據(jù)類型(int、long、byte、short、char、boolean、float、double等),兩個(gè)變量賦值都是指向同一個(gè)內(nèi)存地址,而且不用你特意去指定。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP 引用的概念
  • 詳解PHP的引用計(jì)數(shù)
  • php的對象傳值與引用傳值代碼實(shí)例講解
  • php傳值和傳引用的區(qū)別點(diǎn)總結(jié)
  • php引用和拷貝的區(qū)別知識點(diǎn)總結(jié)
  • php中對象引用和復(fù)制實(shí)例分析
  • PHP實(shí)現(xiàn)無限極分類的兩種方式示例【遞歸和引用方式】
  • PHP中引用類型和值類型功能與用法示例
  • PHP 弱引用的相關(guān)總結(jié)

標(biāo)簽:雙鴨山 江門 大同 石嘴山 深圳 內(nèi)江 駐馬店

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php 多個(gè)變量指向同一個(gè)引用($b = &$a)用法分析》,本文關(guān)鍵詞  php,多個(gè),變量,指向,同一個(gè),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php 多個(gè)變量指向同一個(gè)引用($b = &$a)用法分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于php 多個(gè)變量指向同一個(gè)引用($b = &$a)用法分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章