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

PHP ปิดคลาส


แนะนำตัว

ฟังก์ชันที่ไม่ระบุชื่อ (เรียกอีกอย่างว่าแลมบ์ดา) ส่งคืนอ็อบเจ็กต์ของ การปิด ระดับ. คลาสนี้มีวิธีการเพิ่มเติมบางอย่างที่ช่วยให้สามารถควบคุมฟังก์ชันที่ไม่ระบุตัวตนเพิ่มเติมได้

ไวยากรณ์

Closure {
   /* Methods */
   private __construct ( void )
   public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure
   public bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure
   public call ( object $newthis [, mixed $... ] ) : mixed
   public static fromCallable ( callable $callable ) : Closure
}

วิธีการ

ปิดส่วนตัว::__สร้าง ( ถือเป็นโมฆะ ) — เมธอดนี้มีไว้เพื่อไม่อนุญาตให้สร้างอินสแตนซ์ของคลาส Closure เท่านั้น ออบเจ็กต์ของคลาสนี้สร้างขึ้นโดยฟังก์ชันที่ไม่ระบุชื่อ

ปิดคงที่สาธารณะ::ผูกมัด ( ปิด $ปิด วัตถุ $newthis [ ผสม $newscope ="คงที่" ] ) - ปิด — ทำซ้ำการปิดด้วยวัตถุที่ถูกผูกไว้และขอบเขตคลาสที่เฉพาะเจาะจง เมธอดนี้เป็นเวอร์ชันคงที่ของ Closure::bindTo()

ปิดสาธารณะ::bindTo ( วัตถุ $newthis [ ผสม $newscope ="คงที่" ] ) - ปิด — ทำซ้ำการปิดด้วยวัตถุที่ถูกผูกไว้ใหม่และขอบเขตคลาส สร้างและส่งคืนฟังก์ชันที่ไม่ระบุชื่อใหม่ที่มีเนื้อหาเดียวกันและตัวแปรที่ถูกผูกไว้ แต่มีวัตถุอื่นและขอบเขตของคลาสใหม่

ปิดสาธารณะ::เรียก ( วัตถุ $newthis [, ผสม $... ] ) - ผสม — ผูกส่วนปิดไว้กับ newthis ชั่วคราว และเรียกใช้ด้วยพารามิเตอร์ที่กำหนด

ตัวอย่างการปิด

<?php
class A {
   public $nm;
   function __construct($x){
      $this->nm=$x;
   }
}
// Using call method
$hello = function() {
   return "Hello " . $this->nm;
};
echo $hello->call(new A("Amar")). "\n";;
// using bind method
$sayhello = $hello->bindTo(new A("Amar"),'A');
echo $sayhello();
?>

ผลลัพธ์

โปรแกรมด้านบนแสดงผลดังต่อไปนี้

Hello Amar
Hello Amar