我需要访问一个属于类的常量,但我不想显式地写入类名,而是想直接从对象中检索它。该对象是另一个对象的属性。
$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;
您可以在此处找到有关访问类中常量的更多信息。看看"用户贡献的笔记",非常好的例子和解释。