我没有安装PHP 5.2来测试。
我想使用if (class_exists('Composer\Autoload\ClassLoader'))
来测试是否安装了composer,但我的代码需要与PHP 5.2兼容。
PHP 5.2会卡在反斜杠字符上吗?或者只是返回false并继续使用脚本?
答案 0 :(得分:2)
PHP 5.2中不存在命名空间 - 它们是作为PHP 5.3中的新功能添加的。
因此,对你的问题的直接回答是肯定的,PHP 5.2将被卡在反斜杠上,因为就它而言,它是无效的语法。
您引用的代码行本身在语法上无效,因为正如您指出的那样,它只是一个字符串。将其传递到class_exists()
可能会或可能不会破坏 - 我也没有PHP 5.2的副本,以便确认。如果我猜测,我会期望它会发出某种警告或注意而不是完全爆炸。
但是作曲家本身不适用于5.2,所以如果用户在5.2上,那么根据定义他们不能安装Composer。因此,我建议您首先通过调用phpversion()
和version_compare()
直接检查PHP版本来避免整个问题。这样您就可以避免class_exists()
电话的任何不愉快。