3

我正在尝试进行以下工作:

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 行是 use 语句。

不能在函数中使用命名空间吗?我需要分配相同的命名空间吗?

4

2 回答 2

12

这是因为您不能从函数中声明它。来自PHP:使用命名空间

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

您必须将其移到任何函数或类之外。

于 2013-09-27T16:22:24.367 回答
0

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

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

于 2013-09-27T16:23:08.370 回答