魔術方法 clone

2021-09-19 11:52:36 字數 1009 閱讀 6144

clone():轉殖物件的時候自動呼叫。

測試**如下:

class wo

}$w1=new wo; //建立乙個新的物件

echo $w1->username.'

'; //輸出它的姓名

$w1->say();

echo '

';$c1=$w1; //通過引用賦值,其實它們公用乙個位址,c1和w1只是相當於它的兩個不同的名字

echo $c1->username.'

';$c1->username='queen'; //當你修改了其中乙個物件的名字,另乙個物件也指向這個位址,所以它們無論何時總是具有相同的屬性。

echo $c1->username.'

';echo $w1->username.'

';

執行結果如下:修改了c1的屬性,w1的屬性也就一樣的被修改了。 

通過上面這個例子,我們已經明白了引用賦值是不會真正的轉殖乙個物件出來了,這個時候__clone()就可以實現轉殖出兩個一樣的物件了。

修改**如下:

class wo

public function __clone()

}$w1=new wo; //建立乙個新的物件

echo $w1->username.'

'; //輸出它的姓名

$w1->say();

echo '

';echo '';

$c2=clone $w1; //這裡就是複製出了兩個位址,兩個物件分別指向的是自己的位址,呼叫了__clone()函式

echo $c2->username.'

';$c2->say();

$c2->username='maizi'; //修改其中乙個變數的值,另乙個變數的值不會再跟著改變了。

echo $w1->username.'

';echo $c2->username.'

';

執行結果如下:

曬曬clone 方法

先看乙個原型 prototype 模式的例子 定義 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件.這個是乙個使用勺子的方法 package com.sui.prototype public class saladspoon extends abstractspoon 這個是乙個使用...

with 魔術方法

with open demo1.py as fp print fp.read enter self exit enter 魔術方法 使用with語句的時候,會呼叫這個魔術方法 這個方法的返回值可以作為as x的值 exit self,exc type,exc val,exc tb 魔術方法 1.執行...

php魔術常量,魔術方法

魔術常量 1。line 返回檔案中的當前行號。2。file 返回檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自php4.0.2 起,file 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。3。function 返回函式名稱 php4.3.0 新加 自php5 起本常量返...