[英]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.