国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php中對象引用和復制實例分析

2024-05-05 00:10:54
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了php中對象引用和復制。分享給大家供大家參考,具體如下:

引用

$tv2 = $tv1;

或者

$tv2 = &$tv1;

以上兩種方式,效果是一樣的。可以理解為linux里面的硬鏈接。

克隆(淺復制)

$tv2 = clone $tv1;

“淺復制”:被復制對象的所有變量都含有與原來的對象相同的值,而所有的對其他對象的引用都仍然指向原來的對象。也就是說,淺復制僅僅復制所考慮的對象,而不復制它所引用的對象。

深復制

$tv4 = unserialize(serialize($tv1));

相對于“淺復制”,當然也有一個“深復制”:被復制的對象的所有的變量都含有與原來的對象相同的值,除去那些引用其他對象的變量。也就是說,深復制把要復制的對象所引用的對象都復制了一遍。

代碼示例

<?phpheader("Content-type:text/html;charset=utf-8");class TvControl{}class Tv{  private $color;  private $tvControl;  function __construct(){    $this->color = "black";    $this->tvControl = new TvControl();  }  function setColor($color){    $this->color = $color;  }  function getColor(){    return $this->color;  }  function getTvControl(){    return $this->tvControl;  }}$tv1 = new Tv();$tvControl1 = $tv1->getTvControl();echo "原始類:";var_dump($tv1);echo "<hr/>";$tv2 = $tv1;echo "引用類:";var_dump($tv2);echo "<hr/>";$tv3 = clone $tv1;echo "克隆(淺復制):";var_dump($tv3);echo "<hr/>";$tv4 = unserialize(serialize($tv1));echo "深復制:";var_dump($tv4);

輸出結果:

原始類:
object(Tv)[1]
  private 'color' => string 'black' (length=5)
  private 'tvControl' =>
    object(TvControl)[2]
引用類:
object(Tv)[1]
  private 'color' => string 'black' (length=5)
  private 'tvControl' =>
    object(TvControl)[2]
克隆(淺復制):
object(Tv)[3]
  private 'color' => string 'black' (length=5)
  private 'tvControl' =>
    object(TvControl)[2]
深復制:
object(Tv)[4]
  private 'color' => string 'black' (length=5)
  private 'tvControl' =>
    object(TvControl)[5]

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 清苑县| 冀州市| 陆川县| 文昌市| 绥江县| 博爱县| 北辰区| 永胜县| 黄浦区| 合阳县| 霍州市| 威宁| 福鼎市| 土默特左旗| 贞丰县| 静海县| 桃江县| 诸城市| 晋江市| 潮安县| 宁陵县| 肥乡县| 合江县| 衡东县| 临桂县| 陈巴尔虎旗| 滕州市| 岢岚县| 吉木萨尔县| 大庆市| 新宁县| 四平市| 时尚| 北海市| 吉木乃县| 邵东县| 沙河市| 东海县| 永春县| 涞水县| 湖北省|