Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP สืบทอดคุณสมบัติของอ็อบเจกต์ที่ไม่ใช่คลาส?


สำหรับสิ่งนี้ ให้ใช้ clone พร้อมกับตั้งชื่อคุณสมบัติเป็น null

ตัวอย่าง

รหัส PHP มีดังต่อไปนี้

<!DOCTYPE html>
<html>
<body>
<?php
$firstObject = (object)[
   "Name"  => "John",
   "Age"  => 20
];
$secondObject = clone $firstObject;
var_dump($firstObject);
echo "<br>";
var_dump($secondObject);
foreach ($secondObject as $keyName => $keyValue) {
   $secondObject->$keyName = null;
}
echo "<br>";
var_dump($secondObject);
$firstObject = [
   "Name"  => "John",
   "Age"  => 20
];
echo "<br>";
$arrayObject= array_fill_keys(array_keys($firstObject), null);
$secondObject = (object)$arrayObject;
var_dump($secondObject);
?>
</body>
</html>

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

object(stdClass)#1 (2) { ["Name"]=> string(4) "John" ["Age"]=> int(20) }
object(stdClass)#2 (2) { ["Name"]=> string(4) "John" ["Age"]=> int(20) }
object(stdClass)#2 (2) { ["Name"]=> NULL ["Age"]=> NULL }
object(stdClass)#1 (2) { ["Name"]=> NULL ["Age"]=> NULL }