主頁 > 知識庫 > php的對象傳值與引用傳值代碼實例講解

php的對象傳值與引用傳值代碼實例講解

熱門標簽:百度商鋪地圖標注 常州地圖標注服務商 地圖標注平臺怎么給錢注冊 安裝電銷外呼系統(tǒng) 注冊400電話申請 釘釘打卡地圖標注 衡水外呼系統(tǒng)平臺 新河科技智能外呼系統(tǒng)怎么樣 福州人工外呼系統(tǒng)哪家強

變量賦值與對象賦值對比

?php 
  // 聲明一個變量并賦值 
  $a = 1; 
  // 將數(shù)據(jù)類型的值 賦值 給一個變量 
  $b = $a; 

  // 修改$a的值 
  $a = 2; 

  // $a和$b是兩個獨立的內存空間修改其中一個另一個不受影響
  echo $b; // 1 

  class Person{
    public $name;
    public $age;

  }

  // 將對象類型的數(shù)據(jù) 賦值 給一個變量
  $p = new Person;

  // 通過對屬性修改值,來確定面向對象中 對象的傳值方式
  $p->name = 'jesse';

  // 若是成功修改值,則是引用傳值 
  echo $p->name; // jesse

?>

案例解釋:

在這里通過變量的賦值方式與對象的賦值方式方式相對比,代碼中 $b = a ; 的 賦 值 方 式 為 “ 拷 貝 賦 值 ” , 故 在 修 改 其 源 值 ( a; 的賦值方式為“拷貝賦值”,故在修改其源值( a;的賦值方式為“拷貝賦值”,故在修改其源值(a的值)的情況下, b 的 值 不 受 影 響 。 b的值不受影響。 b的值不受影響。a與$b的內存關系圖如下:


而代碼 p − > n a m e = ′ j e s s e ′ ; 將 數(shù) 據(jù) 類 型 賦 值 給 p->name = 'jesse';將數(shù)據(jù)類型賦值給 p−>name=′jesse′;將數(shù)據(jù)類型賦值給p變量,通過$p修改對象內部的值成功,對比變量的傳值方式,證明這是引用傳值,內存關系圖如下:

?php 
  class Person
  {
    public $name;
    public $age;

    // 將對象類型的數(shù)據(jù) 賦值 給一個變量
    $p = new Person;

    // 通過對屬性修改值,來確定面向對象中 對象的傳值方式
    $p->name = 'jesse';

    // 將對象賦予另一變量
    $m = $p;

    // 另一變量修改屬性值
    $m->name = 'Marry';

    // 輸出源變量 賦值變量訪問內部屬性的結果
    echo $p->name, $m->name;
  }

?>

$m = p ; 代 碼 為 本 篇 文 章 的 最 “ 點 睛 ” 的 代 碼 , 等 號 右 邊 為 是 一 個 對 象 , 左 邊 是 一 個 變 量 , 那 么 犀 利 的 問 題 來 了 , p;代碼為本篇文章的最“點睛”的代碼,等號右邊為是一個對象,左邊是一個變量,那么犀利的問題來了, p;代碼為本篇文章的最“點睛”的代碼,等號右邊為是一個對象,左邊是一個變量,那么犀利的問題來了,m是將對象拷貝一份?還是按引用傳遞呢?該代碼內存關系如下:


所以,最后兩個對象的屬性值均被修改為Marry!!!

那按引用傳值會是怎么個情況?

?php 
  class Person
  {
    public $name; 
    public $age; 
  } 

  // 將對象類型的數(shù)據(jù) 賦值 給一個變量 
  $p = new Person; 

  // 通過對屬性修改值,來確定面向對象中 對象的傳值方式
  $p->name = 'jesse';

  // 將對象賦予另一變量
  $m = $p;

  // 另一變量修改屬性值
  $m->name = 'Marry';

  // 輸出源變量 賦值變量訪問內部屬性的結果
  echo $p->name, $m->name;

?>

到此這篇關于php的對象傳值與引用傳值代碼實例講解的文章就介紹到這了,更多相關php的對象傳值與引用傳值內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • PHP 引用的概念
  • 詳解PHP的引用計數(shù)
  • php傳值和傳引用的區(qū)別點總結
  • php 多個變量指向同一個引用($b = &$a)用法分析
  • php引用和拷貝的區(qū)別知識點總結
  • php中對象引用和復制實例分析
  • PHP實現(xiàn)無限極分類的兩種方式示例【遞歸和引用方式】
  • PHP中引用類型和值類型功能與用法示例
  • PHP 弱引用的相關總結

標簽:唐山 柳州 克拉瑪依 白城 鶴崗 鷹潭 遼陽 六安

巨人網絡通訊聲明:本文標題《php的對象傳值與引用傳值代碼實例講解》,本文關鍵詞  php,的,對,象傳,值,與,引用,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php的對象傳值與引用傳值代碼實例講解》相關的同類信息!
  • 本頁收集關于php的對象傳值與引用傳值代碼實例講解的相關信息資訊供網民參考!
  • 推薦文章