�ڶ�������£����Dz�����Ҫ��ȫ����һ������������������ԡ�����һ�������ȷʵ��Ҫ���������һ�� GTK ���ڶ��ö�����д�����ص���Դ������ܻ��븴��һ���µĴ��ڣ���������������ԭ���Ĵ�����ͬ����������һ���µĶ�����Ϊ��������µĶ�����ôһ�������еĸı�ͻ�Ӱ�쵽��һ�����ڣ�������һ�������������� A �б����Ŷ��� B �����ã����㸴�ƶ��� A ʱ����������ʹ�õĶ������Ƕ��� B ���� B ��һ����������ô�����õ����� A ��һ��������
�����ƿ���ͨ�� clone �ؼ�������ɣ�������ܣ��⽫���ö���� __clone() �������������е� __clone() �������ܱ�ֱ�ӵ��á�
$copy_of_object = clone $object;
�������ƺ�PHP 5 ��Զ������������ִ��һ��dz���ƣ�shallow copy�������е��������� ��Ȼ����һ��ָ��ԭ���ı��������á�
���������ʱ����������� __clone() ���������´����Ķ��������ɵĶ����е� __clone() �����ᱻ���ã������������Ե�ֵ������б�Ҫ�Ļ�����
Example #1 ����һ������
<?php
class SubObject
{
static $instances = 0;
public $instance;
public function __construct() {
$this->instance = ++self::$instances;
}
public function __clone() {
$this->instance = ++self::$instances;
}
}
class MyCloneable
{
public $object1;
public $object2;
function __clone()
{
// ǿ�Ƹ���һ��this->object�� ������Ȼָ��ͬһ������
$this->object1 = clone $this->object1;
}
}
$obj = new MyCloneable();
$obj->object1 = new SubObject();
$obj->object2 = new SubObject();
$obj2 = clone $obj;
print("Original Object:\n");
print_r($obj);
print("Cloned Object:\n");
print_r($obj2);
?>
�������̻������
Original Object: MyCloneable Object ( [object1] => SubObject Object ( [instance] => 1 ) [object2] => SubObject Object ( [instance] => 2 ) ) Cloned Object: MyCloneable Object ( [object1] => SubObject Object ( [instance] => 3 ) [object2] => SubObject Object ( [instance] => 2 ) )