我正在尝试做以下工作:
function flosoftdedicated_api_init() {
require_once 'resources/vendor/autoload.php';
use \Ovh\Common\Ovh;
....
$ovh = new Ovh($config);
return $ovh;
}
function flosoftdedicated_ClientArea($params) {
global $ovh;
$ovh = flosoftdedicated_api_init();
....
}
但是我收到了错误:
解析错误:语法错误,第35行的.... / flosoftdedicated.php中的意外T_USE 第35行是使用声明。
是否无法在函数中使用命名空间?我是否需要分配相同的命名空间?
答案 0 :(得分:11)
这是因为你无法在函数中声明它。来自PHP: Using Namespaces:
use关键字必须在文件的最外层范围(全局范围)或命名空间内声明中声明。这是因为导入是在编译时完成的,而不是运行时,所以它不能是块作用域。
你必须将它移到任何函数或类之外。
答案 1 :(得分:0)
无法在函数或方法中声明“use”关键字。
来自php.net http://www.php.net/manual/en/language.namespaces.importing.php#98908