Php 如何使用控制器的私有属性作为静态属性?

Php 如何使用控制器的私有属性作为静态属性?,php,laravel,oop,laravel-5,authorize.net,Php,Laravel,Oop,Laravel 5,Authorize.net,所以,这个问题很好地解释了我想要什么。这是我所做工作的最低代码 class AuthorizeController extends Controller { private $aNetEnvironment; /** * Create a new controller instance. * * @return void */ public function __construct() { $this-&g

所以,这个问题很好地解释了我想要什么。这是我所做工作的最低代码

class AuthorizeController extends Controller
{
    private $aNetEnvironment;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->aNetEnvironment = env('ANetEnvironment');
    }

    public function setEnvironment()
    {
        $controller = new AnetController\GetCustomerProfileController($request);
        // $this->aNetEnvironment = SANDBOX
        $response = $controller->executeWithApiResponse( 
            \net\authorize\api\constants\ANetEnvironment::$this->aNetEnvironment 
        ); 
    }
}
搜索stackoverflow我有两个选择,两个都试过了,但都不走运

正在尝试,
{$this->aNetEnvironment}
提供

语法错误,意外“'),应为“(”

正在尝试,
$$this->aNetEnvironment
提供

无法创建类App\Http\Controllers\AuthorizeController的对象 转换为字符串

编辑:

正在尝试,
${$this->aNetEnvironment}
提供

访问未声明的静态属性: net\authorize\api\constants\ANetEnvironment::$SANDBOX


还有其他选择吗?

您可以使用PHP。从文档:

签名:

constant ( string $name ) : mixed
返回由名称指示的常量值。

constant()
在需要检索 常量,但不知道其名称。即,它存储在变量或 由函数返回

此函数也适用于类常量

因此,在你的情况下:

$response = $controller->executeWithApiResponse( 
    constant('\net\authorize\api\constants\ANetEnvironment::' . $this->aNetEnvironment) 
); 

要以这种方式使用类属性,您需要从一个
$
开始,并将属性包装在
{}
中,例如
${$this->property}
,因此您应该能够在控制器中使用以下内容:

\net\authorize\api\constants\ANetEnvironment::${$this->aNetEnvironment}

env('ANetEnvironment')的内容是什么
?@HCK尝试了“SANDBOX”。允许
访问未声明的静态属性:net\authorize\api\constants\ANetEnvironment::$SANDBOX
@shazyriver啊抱歉,我假设您尝试访问的是静态属性,而不是常量,因为问题的标题是static property。不过,很高兴您找到了答案。