PHP 5.3 - 5.4 垫片

标签 php polyfills shim

我的服务器运行的是 PHP 5.2。是否有一组垫片以便我可以在 PHP 5.2 中至少使用 PHP 5.3 的一些新功能?喜欢:

<?php if ( !defined('__DIR__') ) define('__DIR__', dirname(__FILE__)); ?>

最佳答案

我记不起 5.3 和 5.4 带来的所有功能,但简短的回答是:没有。

5.3:你提到的功能(__DIR__ 常量)是不可能复制的,除非你想用提到的声明开始每个文件(记住每个文件都有不同的位置)。

5.3:可以使用 create_function() 模拟闭包,但无法使用 use() 或任何新语法传递上下文。

5.4:可以使用外部配置和 __call() 处理程序模拟特征,但您需要在每个类中编写或继承它们。

5.4:嗯,短数组语法是不可能的。

列表还在继续(二进制表示法、数组项取消引用等),但答案仍然是 - 否。

至于它起作用的一个示例,PHP 5.5 的 array_column() 函数有一个“polyfill”,您可以在下面找到它。包含在答案中太长了,所以请不要将其投票为仅链接。

http://benramsey.com/blog/2013/07/the-array-column-php-userland-library/ https://github.com/ramsey/array_column

另请查看模拟 PHP 5.1 及更高版本中所有功能的项目:https://github.com/Polycademy/upgradephp

关于PHP 5.3 - 5.4 垫片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226573/

相关文章:

internet-explorer - 是否有针对 Internet Explorer 的自定义元素 polyfill?

javascript - 什么是 shim JavaScript 库以及为什么它们不支持 AMD?

php帮助。与更新混淆

php - 使用 PHP 创建 LDAP 服务器

javascript - 如何调试移动网站不工作,和/或为 safari 浏览器添加 javascript polyfill?

Angular 4 应用程序无法在 IE11 和 edge 上运行

jquery - 为什么这个 jquery 插件不需要垫片就可以工作?

html - IE8 中可用的 D3 替换(带有 D3 和 svg 的图表)

php - 在 Prestashop 中添加新的后台办公室字段

php - 根据以前的数据更新 MySQL 行的更简单方法?