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

PHP Magic Methods


แนะนำตัว

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

วิธีการมหัศจรรย์ต่อไปนี้มีให้บริการใน PHP

__นอน

public __sleep ( void ) : array

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

__wakeup

public __wakeup ( void ) : void

unserialize() วิธีการตรวจสอบว่ามีฟังก์ชั่นที่มีชื่อเวทย์มนตร์ __wakeup() หากมี ฟังก์ชันนี้สามารถสร้างทรัพยากรใหม่ที่ออบเจ็กต์อาจมีได้

__ซีเรียลไลซ์

public __serialize ( void ) : array

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

__unserialize

public __unserialize ( array $data ) : void

unserialize() ยังตรวจสอบว่ามี __unserialize() อยู่หรือไม่ และจะถูกส่งผ่านอาร์เรย์ที่กู้คืนซึ่งส่งคืนจาก __serialize() จากนั้นอาจคืนค่าคุณสมบัติของวัตถุจากอาร์เรย์นั้นตามความเหมาะสม

__toString

public __toString ( void ) : string

__toString() วิธีการอธิบายการแสดงสตริงของวัตถุ ตัวอย่างเช่น สิ่งที่สะท้อน $obj; จะพิมพ์ เมธอดนี้ต้องส่งคืนสตริง

__invoke

__invoke ([ $... ] ) : mixed

เมธอดนี้ถูกเรียกเมื่อสคริปต์พยายามเรียกอ็อบเจกต์เป็นฟังก์ชัน

__set_state

static __set_state ( array $properties ) : object

วิธีการแบบคงที่นี้ถูกเรียกสำหรับคลาสที่ส่งออกโดย var_export() มันรับพารามิเตอร์หนึ่งตัวซึ่งเป็นอาร์เรย์ที่มีคุณสมบัติที่ส่งออกในรูปแบบ array('property' => value, ...)

__debugInfo

__debugInfo ( void ) : array

เมธอดนี้จะถูกเรียกโดยอัตโนมัติเมื่อดำเนินการ var_dump() เพื่อดัมพ์อ็อบเจ็กต์เพื่อรับคุณสมบัติที่ควรจะแสดง หากไม่ได้กำหนดไว้ คุณสมบัติสาธารณะ การป้องกัน และส่วนตัวทั้งหมดจะแสดงขึ้น

__set

public __set ( string $name , mixed $value ) : void

__set() ทำงานเมื่อเขียนข้อมูลไปยังคุณสมบัติที่ไม่สามารถเข้าถึงได้ (ป้องกันหรือส่วนตัว) หรือไม่มีอยู่

__get

public __get ( string $name ) : mixed

__get() ใช้สำหรับอ่านข้อมูลจากคุณสมบัติที่ไม่สามารถเข้าถึงได้ (มีการป้องกันหรือส่วนตัว) หรือไม่มีอยู่จริง

__isset

public __isset ( string $name ) : bool

__isset() ถูกเรียกใช้โดยการเรียก isset() หรือ empty() บนคุณสมบัติที่ไม่สามารถเข้าถึงได้ (ป้องกันหรือส่วนตัว) หรือไม่มีอยู่จริง

__unset

public __unset ( string $name ) : void

__unset() ถูกเรียกใช้เมื่อใช้ unset() กับคุณสมบัติที่ไม่สามารถเข้าถึงได้ (ป้องกันหรือส่วนตัว) หรือไม่มีอยู่จริง