【问题标题】:Using "use" within a function?在函数中使用“使用”?
【发布时间】:2013-10-04 00:46:41
【问题描述】:

我正在尝试做以下工作:

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 语句。

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

【问题讨论】:

标签: php namespaces


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 2014-11-29
      • 2011-07-12
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      相关资源
      最近更新 更多