ฟังก์ชัน call_user_func_array

ฟังก์ชัน call_user_func_array ช่วยให้สามารถเรียก callback โดยส่งพารามิเตอร์ในรูปของอาร์เรย์ พารามิเตอร์แรกส่งชื่อฟังก์ชันหรือเมธอด ส่วนพารามิเตอร์ที่สองคืออาร์เรย์ของอาร์กิวเมนต์

ไวยากรณ์

phpcall_user_func_array(callable $callback, array $args);

ตัวอย่าง

เรียกฟังก์ชันง่ายๆ พร้อมส่งพารามิเตอร์ผ่านอาร์เรย์:

php<?php
  function sum($a, $b) {
    return $a + $b;
  }
  
  $res = call_user_func_array('sum', [2, 3]);
  echo $res;
?>

ผลลัพธ์การทำงานโค้ด:

php5

ตัวอย่าง

เรียกเมธอดของคลาสพร้อมส่งพารามิเตอร์:

php<?php
  class Calculator {
    public function multiply($a, $b) {
      return $a * $b;
    }
  }
  
  $calc = new Calculator();
  $res = call_user_func_array([$calc, 'multiply'], [4, 5]);
  echo $res;
?>

ผลลัพธ์การทำงานโค้ด:

php20

ตัวอย่าง

การใช้งานกับฟังก์ชันแบบไม่ระบุชื่อ:

php<?php
  $func = function($a, $b, $c) {
    return $a + $b + $c;
  };
  
  $res = call_user_func_array($func, [1, 2, 3]);
  echo $res;
?>

ผลลัพธ์การทำงานโค้ด:

php6

ดูเพิ่มเติม

  • ฟังก์ชัน call_user_func,
    ซึ่งเรียก callback function ด้วยอาร์กิวเมนต์แยก
  • ฟังก์ชัน function_exists,
    ซึ่งตรวจสอบการมีอยู่ของฟังก์ชัน