有条件地解析php代码以避免旧版php上的解析错误

时间:2015-01-08 14:02:18

标签: php

我的脚本必须使用PHP 5.1.0或更高版本运行(例如,因为使用PDO类) 如果没有,它们会带来解析错误。

我说的是邀请匿名访问者下载,安装在他们的服务器上的脚本(我无法获得任何信息),并运行以演示php脚本与我们系统的通信是多么容易。

当然,运行任何这些脚本并在第xxx行获取“解析错误”并不能真正给出解决方案的良好形象......

我尝试使用if (version_compare(PHP_VERSION, '5.1.0') < 0) { die(...); }回复一个整洁的“你需要PHP 5.1.0或更高版本来运行此脚本”错误消息,但是,当然,这不起作用,因为PHP first 解析整个脚本 ,然后 开始执行它并有机会在此测试中死亡。

所以我的问题是: PHP有没有办法在实际解析之前对php版本进行一些测试?
我的意思是像C / C ++ #if#ifdef PRE-processor指令 或任何其他类型的解决方法?

一个限制因素:问题的解决方案不应该使整个脚本看起来不可读或难以理解(如大量调用eval()打破语法着色),也不会让人无法理解(如将每个脚本包括在内)一个“容器脚本”),因为全球目的是证明与我们的系统进行通信是多么简单...
所有搜索到的解决方案都是关于维护兼容性,使用替代函数的数组来调用,取决于php版本,与eval一起到处都可能出错的地方,php解析器...我需要一些非常简单的东西,如果“如果php版本不行,不要解析“......

0 个答案:

没有答案