繁体   English   中英

如何从对象而不是其类访问常量?

[英]How to access a constant from an object instead of its class?

我需要访问一个属于一个类的常量,但是我不想直接写该类的名称,而是想直接从对象中检索它。 该对象是另一个对象的属性。

$this->fetcher::BASE_URL

该语句产生错误syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)

这是一个丑陋的解决方法。

<?php
class simpleClass {
    public function __construct() {
        $this->fetcher = new simpleClass2();
    }

    public function printBaseURL() {
        $fetcher = $this->fetcher;
        print 'Base URL: ' . $fetcher::BaseUrl;
    }
}

class simpleClass2 {
    const BaseUrl = 'one';
}


$simpleClass = new simpleClass();

$simpleClass->printBaseURL();

您可以使用函数返回常量

class MyClass
{
   function getConstant() {
       return  self::CONSTANT . "\n";
   }
}

然后调用该函数

$class = new MyClass();
$class->getConstant();

或者简单地调用常量

MyClass::CONSTANT;

您可以在此处找到有关访问类内常量的更多信息。 查看“用户提供的注释”,那里是很好的示例,并带有说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM