코어 파일을 편집하는 것은 좋은 옵션이 아니기 때문에 주로 "사용자"함수 (플러그인과 같은)를 호출하는 데 사용되었다고 생각하기 때문에 그런 함수를 호출하는 이점은 없습니다. 다음은 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
정말 유용합니다.