亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么要用__clone魔術方法?明明可以不用?。浚?見代碼注釋)

class Car {

? ? public $name = 'car';

//不懂下面的克隆函數有啥用,明明就算不用它,依然可以用clone復制啊??? ? ?

/* ? ?public function __clone() {

? ? ? ? $obj = new Car();

? ? ? ? $obj->name = $this->name;

? ? }*/

}

$a = new Car();

$a->name = 'new car';

$b = clone $a;//這個克隆和直接賦值=又有啥差別呢?

if ($a == $b) echo '=='; ? //true

if ($a === $b) echo '==='; //false


$str = serialize($b); //對象序列化成字符串

echo $str.'<br>';

$c = unserialize($str); //反序列化為對象

var_dump($c);


正在回答

4 回答

http://www.xianlaiwan.cn/video/3689

1 回復 有任何疑惑可以回復我~
#1

野生碼農在線co腚

簡單的來說__clone()可以自定義復制后對象的屬性初期值.
2017-04-18 回復 有任何疑惑可以回復我~
#2

Datcg 提問者 回復 野生碼農在線co腚

現在新版本的php好像慢慢禁用魔術方法了。。。
2017-04-20 回復 有任何疑惑可以回復我~
#3

野生碼農在線co腚 回復 Datcg 提問者

先把我的答案采納了,謝謝。
2017-04-20 回復 有任何疑惑可以回復我~
#4

Datcg 提問者 回復 野生碼農在線co腚

哈哈!好的。
2017-04-20 回復 有任何疑惑可以回復我~
#5

菜鳥Wenco 回復 野生碼農在線co腚

666剛我也想問來著!
2018-04-27 回復 有任何疑惑可以回復我~
#6

carol_PHP

感謝分享!
2019-10-31 回復 有任何疑惑可以回復我~
查看3條回復

clone函數里的東西可以不用,課程里面只是為了讓大家看得清楚

你把clone函數的東西去掉,也能運行。

0 回復 有任何疑惑可以回復我~


使用_clone() 就將屏蔽_clone() 內的 復制 永遠初始化

0 回復 有任何疑惑可以回復我~

用__clone魔術方法可以讓你克隆之后的代碼重復利用,減少你代碼的重復率。


0 回復 有任何疑惑可以回復我~
#1

Datcg 提問者

不是這個意思,看我代碼,屏蔽了__clone(),不也可以復制嗎?
2017-04-09 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
PHP進階篇
  • 參與學習       181921    人
  • 解答問題       2668    個

輕松學習PHP中級課程,進行全面了解,用PHP快速開發網站程序

進入課程

為什么要用__clone魔術方法?明明可以不用???( 見代碼注釋)

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號