国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 西乌珠穆沁旗| 阿拉善左旗| 奎屯市| 西安市| 灵台县| 罗源县| 荃湾区| 油尖旺区| 绩溪县| 宣恩县| 永丰县| 沈丘县| 龙门县| 深圳市| 荥阳市| 广宗县| 新安县| 双柏县| 霍州市| 新丰县| 鸡泽县| 霍林郭勒市| 咸宁市| 旬邑县| 喀喇沁旗| 新蔡县| 莆田市| 隆林| 南宁市| 龙川县| 建昌县| 五指山市| 枣阳市| 沛县| 汕尾市| 喀什市| 大荔县| 丰宁| 湛江市| 射阳县| 湘乡市|