คลาสนิรนามใน PHP 7 สามารถกำหนดได้โดยใช้คลาสใหม่ สามารถใช้แทนคำจำกัดความของคลาสเต็มได้เช่นกัน เหตุใดจึงต้องใช้คลาสที่ไม่ระบุตัวตน
- การทดสอบล้อเลียนเป็นเรื่องง่าย
- สามารถสร้างการใช้งานไดนามิกสำหรับอินเทอร์เฟซได้อย่างง่ายดาย ดังนั้นจึงหลีกเลี่ยงการใช้งาน API การเยาะเย้ยที่ซับซ้อนได้
-
สามารถวางไว้ในขอบเขตที่กำหนดไว้ได้
-
สามารถหลีกเลี่ยงการใช้ตัวโหลดอัตโนมัติสำหรับการใช้งานอย่างง่ายได้
ตัวอย่าง
ด้านล่างนี้คือตัวอย่างโค้ด -
<?php
interface a_logger {
public function log(string $msg);
}
class App {
private $logger;
public function getLogger(): a_logger {
return $this->logger;
}
public function setLogger(a_logger $logger) {
$this->logger = $logger;
}
}
$app = new App;
$app->setLogger(new class implements a_logger {
public function log(string $msg) {
print($msg);
}
});
$app->getLogger()->log("This has created an anonymous class");
?> ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
This has created an anonymous class