在将名称空间添加到可能在php 5.2服务器上运行的脚本之前,是否可以使用某种检查?
例如,如果要在5.3服务器上使用doctrine(需要5.3),并在5.2服务器上回退到PDO。
示例:
if($pdo){
//RETURN a pdo connection
}
else if($doctrine){
//this will fail even if doctrine is false because namespaces are being used
$classLoader = new Doctrine\Common\ClassLoader('Doctrine\Common');
$classLoader->register();
}
这只是一个例子,我确信我可以在没有命名空间的情况下使用它,但只是想知道是否还有在IF语句中使用它们。
答案 0 :(得分:5)
您可以将Doctrine代码放入单独的PHP文件中,并require()
分支内的else if
。
答案 1 :(得分:0)
另一种解决方案是:
$classLoaderName = 'Doctrine\\Common\\ClassLoader';
//this will fail even if doctrine is false because namespaces are being used
$classLoader = new $classLoaderName('Doctrine\Common');
$classLoader->register();
虽未经过测试。