Bu işlevi çağırmanın hiçbir faydası yok çünkü temelde "kullanıcı" işlevini çağırmak için kullanıldığını düşünüyorum (eklenti gibi) çünkü çekirdek dosyayı düzenlemek iyi bir seçenek değil. İşte Wordpress tarafından kullanılan kirli örnek
<?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();
?>
çıktı
hello world my name is Tasikmalaya
call_user_func
gerekli değildir. Her zaman değişken fonksiyonları kullanarak bir işlevini çağırabilirsiniz:$some_func()
.call_user_func_array
gerçekten kullanışlı olandır.