服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

PHP 中如何为函数创建别名

日期: 来源:WordPress果酱收集编辑:牛逼闪闪的Denis

我们知道 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 请点击阅读原文

相关阅读

  • kotlin修炼指南8—集合中的高阶函数

  • 点击上方蓝字关注我,知识会给你力量Kotlin对集合操作类新增了很多快捷的高阶函数操作,各种操作符让很多开发者傻傻分不清,特别是看一些Kotlin的源码或者是协程的源码,各种眼花缭
  • Flutter混编工程之异常处理

  • 点击上方蓝字关注我,知识会给你力量Flutter App层和Framework层的异常,通常是不会引起Crash的,但是Engine层的异常会造成Crash。而Flutter Engine部分的异常,主要是libfutter.so
  • 详解Python魔法方法!

  • 来源丨Deephub IMBApython中的魔法方法是一些可以让你对类添加“魔法”的特殊方法,它们经常是两个下划线包围来命名的Python的魔法方法,也称为dunder(双下划线)方法。大多数
  • 一行 Python 代码竟然能实现并行!

  • Python 在程序并行化方面多少有些声名狼藉。撇开技术上的问题,例如线程的实现和 GIL,我觉得错误的教学指导才是主要问题。常见的经典 Python 多线程、多进程教程多显得偏"重"
  • Kotlin中Lambda表达式及其简化

  • 在Kotlin编程中,lambda表达式的应用非常常见,这篇文章用来介绍一下怎样用lambda表达式定义函数,用lambda表达式进行函数传参,以及简化lambda表达式参考文档: https://developer.
  • 浅谈JS函数式编程

  • 高效搬砖——拆分、组合、复用我们不妨以一个栗子开始:这是Scott Sauyet所著《Favoring Curry》中一个在项目实战里遇到的问题。var data = { result: "SUCCESS", inte
  • Java 判空新写法!干掉 if else 啦

  • 大家中午好,我是小咖,不管工作多忙,中午饭一定要吃哦。在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下
  • 9个技巧使你的Python代码更Pythonic!

  • "Beautiful is better than ugly." 这不仅是 "The Zen of Python" 的第一句话,也是所有Python开发者的信条。但如何区分漂亮和丑陋的代码?更重要的是,如何写出漂亮的 Python 代
  • IMREAL函数-可以冷但不可以凉凉~

  • 从最新的统计来看,Excel中目前有504个函数,其中常用的函数,只有几十个,那么剩下的那些不常用的函数中,有没有什么特别好用但是非常冷门的函数呢?

    且看一个案例




  • O365是函数式编程吗?!

  • 365版本及最近一批好用的新函数如下:关于学习,推荐加入学习圈,全部免费为什么今天发文这么晚?因为今天早上我还在更新系列教程! 01:1834个函数,还有一个全部更新完毕!一起学起来吧!

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • PHP 中如何为函数创建别名

  • 我们知道 PHP 有一个为类创建一个别名的函数:class_alias,比如我们有个类名字是 WPJAM_Items,我们希望使用 WPJAM_Item 时候也有同样的效果,可以使用下面的代码为类 WPJAM_Items
  • 芝加哥农产品期价2月28日下跌

  •   新华社芝加哥2月28日电(记者徐静)芝加哥期货交易所玉米、小麦和大豆期价2月28日全线下跌。  当天,芝加哥期货交易所玉米市场交投最活跃的5月合约收于每蒲式耳6.3025美元,
  • WordPress 官方推出了一款 Newsletter 的主题:Lettre

  • WordPress.com 之前推出了邮件订阅服务,现在 WordPress 官方把对应的主题要免费发布了,所以就有一款官方推出的 Newsletter 主题 Lettre:整个主题非常简洁,就是一个大大的邮件订