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

时间:2015-02-25 22:14:17

标签: php const constants

我需要访问属于某个类的常量,而不是编写类'明确地命名,我想直接从对象中检索它。该对象是另一个对象的属性。

$this->fetcher::BASE_URL

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

2 个答案:

答案 0 :(得分:1)

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

<?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();

答案 1 :(得分:0)

您可以使用函数返回常量

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

然后调用该函数

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

或者只是调用常量

MyClass::CONSTANT;

您可以在类here中找到有关访问常量的更多信息。看一下“用户贡献的笔记”,非常好的例子和解释。