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

Anonymous classes ใน PHP 7


Anonymous classes ใน PHP 7 สามารถกำหนดได้ด้วย new class สามารถใช้แทนการกำหนดคลาสเต็มรูปแบบได้ เหตุไหนต้องใช้ anonymous classes?

  • Mocking tests ทำได้ง่าย
  • Dynamic implementations สำหรับ interfaces สร้างได้ง่าย หลีกเลี่ยง complex mocking APIs
  • สามารถวางในขอบเขตที่พวกเขาถูกกำหนด
  • หลีกเลี่ยงการใช้ autoloader สำหรับการ implement 简单

ตัวอย่าง

โค้ดตัวอย่างด้านล่าง:

<?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