我的脚本必须使用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版本不行,不要解析“......