PHP 中如何为函数创建别名

科技7个月前发布 iowen
72 0 0

我们知道 PHP 有一个为类创建一个别名的函数:class_alias,比如我们有个类名字是 WPJAM_Items,我们希望使用 WPJAM_Item 时候也有同样的效果,可以使用下面的代码为类 WPJAM_Items 创建一个别名 WPJAM_Item 。

class_alias('WPJAM_Items', 'WPJAM_Item');

但是 PHP 就没有可以为函数创建一个别名的函数,比如我之前创建了一个函数 wpjam_is_mobile 来判断当前用户的设备是不是移动设备,但是后面发现 WordPress 已经通过 wp_is_mobile 函数实现了该方法。

于是我把自己写的函数直接通过 WordPress 的函数实现:

function wpjam_is_mobile(){
return wp_is_mobile();
}

这样感觉上略显繁琐,没有创建别名的方式简洁,那么我们就自己创建一个 function_alias 函数,实现为函数创建别名:

function function_alias($original, $alias){
if(!function_exists($original) || function_exists($alias)){
return false;
}

eval('function '.$alias.'(...$args){
return call_user_func(''.$original.'', ...$args);
}');

return true;
}

如果担心 PHP 后续版本升级也实现了该方法,加多一个 function_exists 的判断:

if(!function_exists('function_alias')){
function function_alias($original, $alias){
if(!function_exists($original) || function_exists($alias)){
return false;
}

eval('function '.$alias.'(...$args){
return call_user_func(''.$original.'', ...$args);
}');

return true;
}
}

那么上面的别名就可以通过下面的代码实现了:

function_alias('wp_is_mobile', 'wpjam_is_mobile');

WPJAM Basic 最新版已经集成了该函数。



点击卡片关注「WordPress果酱」 
每天分享 WordPress 使用技巧 

⏬⏬ 下载 WPJAM Basic 请点击阅读原文

© 版权声明

相关文章

暂无评论

暂无评论...