在控制结构中使用名称空间(if语句)


Use namespace within control structure (if-statement)

这行得通:

require_once( $_SERVER["DOCUMENT_ROOT"] . '/fb/FacebookSession.php' );
use Facebook'FacebookSession;

这并不:

if (1 == 1) {
    require_once( $_SERVER["DOCUMENT_ROOT"] . '/fb/FacebookSession.php' );
    use Facebook'FacebookSession;
}

返回以下错误:

解析错误:语法错误,unexpected 'use' (T_USE) in /fb.php on line 3

如何在控制结构中使用命名空间?

可以使用完全限定的类名:

$session = new 'Facebook'FacebookSession();

或者如果你需要动态选择类:

$class = '''Twitter''TwitterSession';
if (1 == 1) {
    require_once( $_SERVER["DOCUMENT_ROOT"] . '/fb/FacebookSession.php' );
    $class = '''Facebook''FacebookSession';
}
$session = new $class();