如何在同一个文件中为多个版本的PHP编码而不会出现错误?

轨道的

我正在尝试使用version_compare在一个文件中支持某些版本的PHP代码的两个版本,但仍然出现错误。

码:

if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
    $alias = preg_replace_callback('/&#x([0-9a-f]{1,7});/i', function($matches) { return chr(hexdec($matches[1])); }, $alias);
    $alias = preg_replace_callback('/&#([0-9]{1,7});/', function($matches) { return chr($matches[1]); }, $alias);
} else {
    $alias = preg_replace('/&#x([0-9a-f]{1,7});/ei', 'chr(hexdec("\\1"))', $alias);
    $alias = preg_replace('/&#([0-9]{1,7});/e', 'chr("\\1")', $alias);
}

但是我得到:

PHP解析错误:语法错误,意外的T_FUNCTION

preg_replace_callback()调用时,可能是由于匿名功能。

辣椒坚果

无法使用版本检查来决定使用将导致先前版本中的解析错误的语言功能。解析器查看整个文件,而不管分支如何。

如果该版本的棉绒检查失败,则无论分支如何,它均不起作用:

> php -l file.php
> PHP Parse error: syntax error, unexpected T_FUNCTION

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Flow 中声明一个更改参数的函数而不会出现 ESLint 错误

如何在同一个xml文件中设置多个按钮的设计

如何在 App.js 中显示来自同一个文件的多个组件?

Android:如何在同一个文件中迭代多个JSON对象数组

为同一个向量 C++ 运行多个线程时出现分段错误

如何将 jenkins 配置为在同一个 jenkins 文件中的多个节点(一个用于 linux,一个用于 Windows)上构建?

如何在同一个 Svelte 文件中为多种语言启用 Vim 语法高亮?

如何在C ++中将多个文件包装到同一个命名空间中

如何在Prolog中为同一个原子有两个名称?

如何在js中的同一个寡妇的html文件中打开html文件

在同一个php文件中处理多个表单

我如何在同一个函数中在 ajax 中接收多个响应

如何在同一个文件中运行两个匿名结构?

如何使用 GSON 从同一个 JSON 文件中获取多个 Java 对象?

如何在matlab中在同一个图形上创建多个图

如何在同一个正则表达式中搜索多个单词?

如何在同一个密钥的Rust HashMap中存储多个元素?

我们如何在同一个查询中插入多个值

如何在同一个OOP类中修改多个对象?

如何在同一个进程中操作多个ZeroMQ Socket类型?

如何在JavaScript中的同一个功能中使用多个按钮?

Maven原型:如何在同一个Maven插件中添加多个原型?

如何在同一个aspx页面中获取多个GridView

如何在 Python 3 的同一个键中附加多个值?

如何在同一个对象中推送多个数据?

Codeigniter如何在同一个表中回显多个INNER JOIN

Flask 如何在同一个模板中处理多个 sqlite3 查询?

GridGain:如何在同一个JVM中运行多个节点?

DHCP如何在同一个子网中处理多个作用域