欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年02月26日 15:56:12   作者:PHP開發(fā)社區(qū)  
這篇文章主要介紹了php的對象傳值與引用傳值代碼實例講解,感興趣的同學可以多多學習下

變量賦值與對象賦值對比

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

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

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

  class Person{
    public $name;
    public $age;

  }

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

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

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

?>

案例解釋:

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


在這里插入圖片描述

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

在這里插入圖片描述

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

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

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

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

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

    // 輸出源變量 賦值變量訪問內(nèi)部屬性的結(jié)果
    echo $p->name, $m->name;
  }

?>

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


在這里插入圖片描述

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

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

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

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

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

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

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

  // 輸出源變量 賦值變量訪問內(nèi)部屬性的結(jié)果
  echo $p->name, $m->name;

?>

在這里插入圖片描述

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

相關文章

  • PHP微信支付實例解析

    PHP微信支付實例解析

    這篇文章主要為大家詳細介紹了PHP微信支付實例,包括PHP微信支付源碼,PHP微信退款源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • php中使用preg_match_all匹配文章中的圖片

    php中使用preg_match_all匹配文章中的圖片

    有時候我們需要使用php獲取網(wǎng)頁中的圖片并保存下來,這里我們可以使用preg_match_all用來匹配圖片地址,需要的朋友可以參考下
    2013-02-02
  • ThinkPHP學習筆記(一)ThinkPHP部署

    ThinkPHP學習筆記(一)ThinkPHP部署

    我是在新浪的SAE上安裝ThinkPHP,SAE引擎的,直接安裝源代碼包,然后啟動Memcache和MySql服務就可以運行成功了。
    2014-06-06
  • PHP無限分類(樹形類)

    PHP無限分類(樹形類)

    PHP無限分類,Google一下就能找到很多相關資料,思路比較拉風的,也是用得比較多的就是分類表至少有id,pid,name三個字段,id自增表分類,pid為父分類,name為分類名,這樣就構(gòu)成了一棵樹,如下,算是我查詢分類表得到的結(jié)果集
    2013-09-09
  • 支付寶支付開發(fā)——當面付條碼支付和掃碼支付實例

    支付寶支付開發(fā)——當面付條碼支付和掃碼支付實例

    這篇文章主要介紹了支付寶支付開發(fā)——當面付條碼支付和掃碼支付實例,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11
  • destoon公司主頁模板風格的添加方法

    destoon公司主頁模板風格的添加方法

    這篇文章主要介紹了destoon公司主頁模板風格的添加方法,需要的朋友可以參考下
    2014-06-06
  • 檢測codeigniter腳本消耗內(nèi)存情況的方法

    檢測codeigniter腳本消耗內(nèi)存情況的方法

    這篇文章主要介紹了檢測codeigniter腳本消耗內(nèi)存情況的方法,實例分析了codeigniter中memory_usage方法及{ memory_usage}偽變量的使用技巧,需要的朋友可以參考下
    2015-03-03
  • thinkPHP的表達式查詢用法詳解

    thinkPHP的表達式查詢用法詳解

    這篇文章主要介紹了thinkPHP的表達式查詢用法,結(jié)合實例形式分析了thinkPHP表達式查詢的格式及相關運算符用法,需要的朋友可以參考下
    2016-09-09
  • laravel5環(huán)境隱藏index.php后綴(apache)的方法

    laravel5環(huán)境隱藏index.php后綴(apache)的方法

    今天小編就為大家分享一篇laravel5環(huán)境隱藏index.php后綴(apache)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • PHP生成(支持多模板)二維碼海報代碼

    PHP生成(支持多模板)二維碼海報代碼

    本篇文章給大家分享了PHP生成支持多模板二維碼海報代碼,如果大家對此有需要,可以跟著參考學習下。
    2018-04-04

最新評論