354 of 410 menu

เมธอด __invoke

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

ไวยากรณ์

class MyClass { public function __invoke(...$args) { // การนำไปใช้งาน } }

ตัวอย่าง

มาสร้างคลาสด้วยเมธอด __invoke และเรียกออบเจ็กต์เป็นฟังก์ชัน:

<?php class Greeter { public function __invoke($name) { return "Hello, $name!"; } } $greet = new Greeter(); echo $greet('John'); ?>

ผลลัพธ์จากการรันโค้ด:

'Hello, John!'

ตัวอย่าง

การใช้ __invoke กับพารามิเตอร์หลายตัว:

<?php class Calculator { public function __invoke($a, $b) { return $a + $b; } } $calc = new Calculator(); echo $calc(5, 3); ?>

ผลลัพธ์จากการรันโค้ด:

8

ตัวอย่าง

ตรวจสอบว่าออบเจ็กต์สามารถเรียกได้หรือไม่โดยใช้ is_callable:

<?php class Test {} $obj1 = new Test(); $obj2 = new class { public function __invoke() {} }; var_dump(is_callable($obj1)); var_dump(is_callable($obj2)); ?>

ผลลัพธ์จากการรันโค้ด:

false true

ดูเพิ่มเติม

  • เมธอด __construct,
    ซึ่งเป็นคอนสตรักเตอร์ของคลาส
  • เมธอด __toString,
    ซึ่งอนุญาตให้ออบเจ็กต์ถูกแสดงเป็นสตริง
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ