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

คลาสที่ไม่ระบุชื่อใน PHP 7?


คลาสนิรนามใน 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