我的服务器运行的是 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/