ฟังก์ชัน forward_static_call
ฟังก์ชัน forward_static_call ช่วยให้สามารถเรียกใช้เมธอดแบบสแตติกของคลาสได้
โดยใช้ Late Static Binding พารามิเตอร์แรก
คือ callback function ในรูปแบบอาร์เรย์ [คลาส, เมธอด] หรือสตริงที่มีชื่อเมธอด
และพารามิเตอร์ต่อมาคืออาร์กิวเมนต์สำหรับเมธอดที่ถูกเรียก
ไวยากรณ์
forward_static_call(callable $callback, mixed ...$args): mixed
ตัวอย่าง
การเรียกเมธอดแบบสแตติกผ่าน forward_static_call:
<?php
class A {
public static function test() {
return static::class;
}
}
class B extends A {}
$res = forward_static_call(['B', 'test']);
echo $res;
?>
ผลลัพธ์จากการรันโค้ด:
'B'
ตัวอย่าง
การส่งอาร์กิวเมนต์เข้าไปในเมธอดที่ถูกเรียก:
<?php
class Calculator {
public static function add($a, $b) {
return $a + $b;
}
}
$res = forward_static_call(['Calculator', 'add'], 5, 3);
echo $res;
?>
ผลลัพธ์จากการรันโค้ด:
8
ดูเพิ่มเติม
-
ฟังก์ชัน
call_user_func,
ซึ่งเรียกใช้ callback function -
ฟังก์ชัน
forward_static_call_array,
ซึ่งทำงานคล้ายกับ forward_static_call แต่รับอาร์กิวเมนต์ในรูปแบบอาร์เรย์