语法糖往往给程序员提供了更实用的编码方式,可以使代码更简洁流畅,语义更自然。本文介绍笔者自己写的PHP语法糖扩展,扩展了一种全新的PHP超全局变量获取方式。
说说语法糖
首先说说“语法糖”这个词绝非贬义词,它可以给我们的开发工作带来便利,是一种轻量级便捷的写法,既不会对语言本身的使用造成不利影响,也不会在性能上带来损失。
通常情况下,使用语法糖能够增加程序的可读性,减少程序复杂性,减少编码中出错的机会,也对开发工程师具有友好性,能够提升我们的开发效率。
优秀的语法糖,应该是一种灵魂思想的注入,简单写法的应用。我这里用一幅图来表示:
什么是SG?
SG 全称 Superglobals,引用全局作用域中可用的全部变量。SG扩展了一种全新的PHP超全局变量获取方式。
这些超全局变量是:_SERVER,_GET,_POST,_FILES,_COOKIE,_SESSION,_REQUEST,_ENV。
当然了,也可以应用到自定义变量场景。
非常重要的一点是:它很简单!
1. 项目背景
这个idea出发点很简单,从扩展名称我们应该能猜到它是做什么的。
在性能***的前提下:
So,SG出现就是为了解决上面这些问题而来,它提供了一种更加甜蜜的语法,当前已经发布了v3.0.0。
2. 项目地址
https://github.com/yulonghu/sg
欢迎大家来提交Issues~
当前支持的PHP版本,如下图所示:
SG的特性
配置项(php.ini)
Hash Map
流程图
global 声明方式(PHP7):
函数方式
API
global 声明方式:
静态方法
例子
1. global 声明例子
(1) sg.global_level = 1:
以上例子输出的结果:
(2) sg.global_level = 0
以上例子输出的结果:
(3) sg.func_name
以上例子输出的结果:
2. 静态方法例子
(1) get/set/has/del()
以上例子输出的结果:
(2) sg.func_name
以上例子输出的结果:
性能测试
噼里啪啦说了大半天,性能到底怎么样呢?我在本地环境做了一个简单的ab测试(ab -c100 -n10000),PHP测试代码如下:
default - 源码:
global 声明方式 - 源码:
default - 结果:
global 声明方式 - 结果:
总结
SG具有以下优势:
注意:global 声明方式,当前只支持不可变变量名。
【本文是专栏机构360技术的原创文章,微信公众号“360技术( id: qihoo_tech)”】
网站标题:SG:一个简单的PHP语法糖扩展
网站链接:http://www.mswzjz.cn/qtweb/news38/429338.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能