在函数中使用“use”?

时间:2013-09-27 16:15:09

标签: php namespaces

我正在尝试做以下工作:

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行是使用声明。

是否无法在函数中使用命名空间?我是否需要分配相同的命名空间?

2 个答案:

答案 0 :(得分:11)

这是因为你无法在函数中声明它。来自PHP: Using Namespaces

  

use关键字必须在文件的最外层范围(全局范围)或命名空间内声明中声明。这是因为导入是在编译时完成的,而不是运行时,所以它不能是块作用域。

你必须将它移到任何函数或类之外。

答案 1 :(得分:0)

  

无法在函数或方法中声明“use”关键字。

来自php.net http://www.php.net/manual/en/language.namespaces.importing.php#98908