如何使用类名的变量访问PHP中的命名空间类常量


How do I access a namespaced class constant in PHP using a variable for the class name?

我有以下内容。

my class
<?php
namespace app'models;    
use BingAds'CustomerManagement'CustomerManagementServiceSettings;

api class
namespace BingAds'CustomerManagement
{
    final class CustomerManagementServiceSettings
    {
        const SandboxEndpoint = 'https://clientcenter.api.sandbox.bingads.microsoft.com/Api/CustomerManagement/v9/CustomerManagementService.svc';

如何使用变量作为类名来访问常量?它可以直接实例化类,但当类是变量时,我无法访问或实例化它。

new CustomerManagementServiceSettings();
$serviceSettingsClass = 'CustomerManagementServiceSettings';
$serviceSettingsClass::SandboxEndpoint; # line 80

提供

PHP致命错误:在第80行上的/cygdrive/c/Users/Chloe/workspace/bestsales/models/BingAds.PHP中找不到类"CustomerManagementServiceSettings"

这个问题于事无补。

在Java中,我可以使用

Class c = CustomerManagementServiceSettings.class
String se = (String) c.getField("SandboxEndpoint").get(null);

观察php.net上的akhoondi指向这里的内容:

必须注意,当使用动态类名[…]时,"当前命名空间"[…]是全局命名空间。

因此,要做到这一点,您需要在使用动态类名时指定完整的命名空间。