Code前端首页关于Code前端联系我们

SG:PHP的简单语法糖扩展了获取变量的超全局方法

terry 2年前 (2023-09-25) 阅读数 49 #后端开发

语法糖往往为程序员提供了更实用的编码方式,使得代码更加简洁流畅,语义更加自然。本文介绍了一个简单的 PHP 语法扩展,扩展了一种获取 PHP 超级全局变量的新方法。 我们来说说语法糖

首先我们来说说“语法糖”这个词,它绝不是一个贬义词。可以给我们的开发工作带来方便。这是一种轻松、舒适、不影响语言的写作方式。它的使用不会造成任何不利影响,也不会造成任何性能损失。

通常,使用糖语法可以提高程序可读性,降低程序复杂性,并减少编码错误的可能性。对开发者也很友好,可以提高我们的开发效率。

优秀的语法糖应该是灵魂与思想的注入,是简单写作的运用。我用一张图来表达一下:SG :一个简单PHP语法糖扩展超全局变量获取方式SG是什么?

SG全称是Superglobals,指全局范围内所有可用的变量。 SG扩展了获取 PHP 超级全局变量的新方法。 这些超级全局变量是:_SERVER、_GET、_POST、_FILES、_COOKIE、_SESSION、_REQUEST、_ENV。当然,也可以应用于有自定义变量的场景。很重要的一点是:很简单 项目背景 这个想法的出发点非常简单。通过扩展名,我们应该能够猜出它的作用。假设性能最佳:

  • 能够以可理解的方式简化获取 HTTP 参数的方式
  • 需要对 HTTP 参数值进行统一的过滤、转换、解密等操作​​​​
  • 在获取 HTTP 参数之前需要进行一些预定义的操作获取HTTP参数
  • 对于所有HTTP参数行为都需要通过对应的PHP超全局命令
  • 来同步更新。在请求开始时使用而不是清除 PHP 超级全局变量。
  • 在全局语法中,扩展项可以获取HTTP参数能力
所以SG来解决上述问题。它提供了更甜美的语法,并且版本 3.0.0 已经发布。项目地址https://github.com/yulonghu/sg 任何人都可以提交issue~目前支持的PHP版本如下所示: SG :一个简单PHP语法糖扩展超全局变量获取方式简单、快速的功能SG 轻量级
  • 对超级全局 PHP 变量的零拷贝访问。使用SG会同步更新PHP超级全局变量
  • 支持在取值之前调用自定义函数。默认情况下,字符串变量会自动调用PHPtrim
  • 修复使用PHP超级全局变量时未定义行(未定义变量、未定义偏移)问题
  • 使用静态方法时将PHP数组维度替换为小数点
  • 使用全局方法时声明用下划线替换 PHP 数组维度
  • 支持可配置的全局$变量搜索深度,默认单级搜索
  • 配置项(php.ini)

    SG :一个简单PHP语法糖扩展超全局变量获取方式哈希映射

    SG :一个简单PHP语法糖扩展超全局变量获取方式ⓓ图表全局声明方法 (PHP7) SG :一个简单PHP语法糖扩展超全局变量获取方式函数方法SG :一个简单PHP语法糖扩展超全局变量获取方式API 全局声明方法 全局声明方法 全局声明示例sg.global_level = 1SG :一个简单PHP语法糖扩展超全局变量获取方式SG :一个简单PHP语法糖扩展超全局变量获取方式上例输出结果:SG :一个简单PHP语法糖扩展超全局变量获取方式sg.global_level = 0SG :一个简单PHP语法糖扩展超全局变量获取方式上例输出结果❀❙.‶》上例输出: nc_ 上例:SG :一个简单PHP语法糖扩展超全局变量获取方式静态方法示例get/ set/has/del( )SG :一个简单PHP语法糖扩展超全局变量获取方式SG :一个简单PHP语法糖扩展超全局变量获取方式上例输出结果: SG :一个简单PHP语法糖扩展超全局变量获取方式sg.func_nameSG :一个简单PHP语法糖扩展超全局变量获取方式:上例输出结果SG :一个简单PHP语法糖扩展超全局变量获取方式性能测试

    我已经聊了半天,表现如何?我在本地环境中做了一个简单的 ab 测试(ab -c100 -n10000)。 PHP 测试代码如下: default - 源代码 SG :一个简单PHP语法糖扩展超全局变量获取方式 全局声明方法 - 源代码 SG :一个简单PHP语法糖扩展超全局变量获取方式default - 结果 SG :一个简单PHP语法糖扩展超全局变量获取方式SG :一个简单PHP语法糖扩展超全局变量获取方式 全局声明方法 - 结果 SG :一个简单PHP语法糖扩展超全局变量获取方式 摘要SG :一个简单PHP语法糖扩展超全局变量获取方式 摘要 ❙❀ ❙❀以下好处:

    • 兼容当前主流PHP版本
    • 提供更甜美的语法,丰富Superglobals应用
    • 我们始终相信:简单才是王道
    目前只有全局声明方法支持不可变变量名称。

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门