3

我的服务器正在运行 PHP 5.2。是否有一些垫片,所以我可以在 PHP 5.2 中使用至少一些 PHP 5.3 的新功能?像:

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

4

1 回答 1

1

我不记得 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

于 2014-07-22T12:22:37.060 回答