【问题标题】:How can use two namespaces in one file?如何在一个文件中使用两个命名空间?
【发布时间】:2017-10-24 11:18:22
【问题描述】:

我正在使用来自 http://devbay.net/sdk/guides/api/namespace-DTS.eBaySDK.html 的 SDK 我需要在一个文件中使用查找和交易服务。 我如何声明不同的命名空间

use \DTS\eBaySDK\Constants;
use \DTS\eBaySDK\Finding\Services;
use \DTS\eBaySDK\Finding\Types;
use \DTS\eBaySDK\Finding\Enums;


use \DTS\eBaySDK\Trading\Services;
use \DTS\eBaySDK\Trading\Types;
use \DTS\eBaySDK\Trading\Enums;

PHP 致命错误:无法将 DTS\eBaySDK\Trading\Services 用作服务,因为该名称已在使用中

那么还有其他方法吗?

【问题讨论】:

    标签: php ebay-api


    【解决方案1】:

    你可以使用aliases:

    use \DTS\eBaySDK\Constants;
    use \DTS\eBaySDK\Finding\Services as FServices;
    use \DTS\eBaySDK\Finding\Types as FTypes;
    use \DTS\eBaySDK\Finding\Enums as FEnums;
    
    
    use \DTS\eBaySDK\Trading\Services as TServices;
    use \DTS\eBaySDK\Trading\Types as TTypes;
    use \DTS\eBaySDK\Trading\Enums as TEnums;
    

    虽然为了避免与这些新引入的名称混淆,您可以退回到仅导入 \DTS\eBaySDK\Finding\DTS\eBaySDK\Trading 并像这样显式使用其中的类型:

    use \DTS\eBaySDK\Constants;
    use \DTS\eBaySDK\Finding;
    use \DTS\eBaySDK\Trading;
    
    $fs = new Finding\Services\FindingService();
    

    【讨论】:

      【解决方案2】:

      命名空间 1 { //你的逻辑 }

      命名空间2{ //你的逻辑

      }

      【讨论】:

      • 我如何在 namespace1 的 namespace2 逻辑中使用?比如 namespace1/function() ?
      • 对,是的,和其他命名空间一样
      猜你喜欢
      • 2018-07-18
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      相关资源
      最近更新 更多