PHP โคลนคำหลัก
ตัวอย่าง
สร้างสำเนาของวัตถุ:
<?php
class MyClass {
public $color;
public $amount;
}
$obj = new MyClass();
$obj->color = "red";
$obj->amount = 5;
$copy = clone $obj;
print_r($copy);
?>
ความหมายและการใช้งาน
คีย์เวิร์ด ใช้clone
เพื่อสร้างสำเนาของออบเจกต์
หากคุณสมบัติใดเป็นการอ้างอิงไปยังตัวแปรหรืออ็อบเจ็กต์อื่น ระบบจะคัดลอกเฉพาะการอ้างอิงเท่านั้น ออบเจ็กต์จะถูกส่งผ่านโดยการอ้างอิงเสมอ ดังนั้นหากอ็อบเจ็กต์ดั้งเดิมมีอ็อบเจ็กต์อื่นในคุณสมบัติ สำเนาจะชี้ไปที่อ็อบเจ็กต์เดียวกัน พฤติกรรมนี้สามารถเปลี่ยนแปลงได้โดยการสร้าง__clone()
วิธีการในชั้นเรียน
หน้าที่เกี่ยวข้อง
อ่านเพิ่มเติมเกี่ยวกับคลาสในPHP Classes and Objects Tutorial
ตัวอย่างเพิ่มเติม
ตัวอย่าง
สร้างสำเนาของวัตถุที่มีการอ้างอิง:
<?php
class MyClass {
public $amount;
}
// Create an object with a
reference
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// Clone the object
$copy = clone $obj;
// Change the value in the
original object
$obj->amount = 6;
// The copy is changed
print_r($copy);
?>
ตัวอย่าง
ใช้__clone()
วิธีการเพื่อแยกการอ้างอิงในวัตถุที่คัดลอก:
<?php
class MyClass {
public $amount;
public function __clone() {
$value = $this->amount;
unset($this->amount); // Unset breaks references
$this->amount = $value;
}
}
// Create an object with a reference
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// Clone
the object
$copy = clone $obj;
// Change the value in the original
object
$obj->amount = 6;
// The copy is not changed
print_r($copy);
?>
❮ คีย์เวิร์ด PHP