ไม่มีประโยชน์ที่จะเรียกใช้ฟังก์ชันแบบนั้นเพราะฉันคิดว่าส่วนใหญ่ใช้เพื่อเรียกฟังก์ชัน "ผู้ใช้" (เช่นปลั๊กอิน) เนื่องจากการแก้ไขไฟล์หลักไม่ใช่ตัวเลือกที่ดี นี่คือตัวอย่างสกปรกที่ Wordpress ใช้
<?php
function myLocation($content){
return str_replace('@', 'world', $content);
}
function myName($content){
return $content."Tasikmalaya";
}
add_filter('the_content', 'myLocation');
add_filter('the_content', 'myName');
?>
...
<?php
$content = "hello @ my name is ";
$listFunc = array();
function add_filter($fName, $funct)
{
$listFunc[$fName]= $funct;
}
function apply_filter($funct, $content)
{
global $listFunc;
if(isset($listFunc))
{
foreach($listFunc as $key => $value)
{
if($key == $funct)
{
$content = call_user_func($listFunc[$key], $content);
}
}
}
return $content;
}
function the_content()
{
$content = apply_filter('the_content', $content);
echo $content;
}
?>
....
<?php
require_once("core.php");
require_once("my_plugin.php");
the_content();
?>
เอาท์พุท
hello world my name is Tasikmalaya
call_user_func
ไม่จำเป็นต้องใช้$some_func()
คุณสามารถเรียกใช้ฟังก์ชันโดยใช้ฟังก์ชั่นตัวแปร:call_user_func_array
เป็นสิ่งที่มีประโยชน์จริงๆ