在PHP中访问注入类的常量
为什么常量不能这样访问-$this->a::MY_常量?有人知道其他方法吗?上述方法可以通过这种方式实现。这里我们使用函数将类名作为字符串获取。我们将其存储在变量中,然后使用该变量检索常量的值在PHP中访问注入类的常量,php,class,Php,Class,为什么常量不能这样访问-$this->a::MY_常量?有人知道其他方法吗?上述方法可以通过这种方式实现。这里我们使用函数将类名作为字符串获取。我们将其存储在变量中,然后使用该变量检索常量的值 您也可以通过此方法执行相同的操作 <?php ini_set('display_errors', 1); class A{ const MY_CONSTANT = 'my constant'; } class B{ protected $a; public functi
您也可以通过此方法执行相同的操作
<?php
ini_set('display_errors', 1);
class A{
const MY_CONSTANT = 'my constant';
}
class B{
protected $a;
public function __construct(A $a)
{
$this->a = $a;
}
public function someFunction()
{
$class=get_class($this->a);
echo $class::MY_CONSTANT;
}
}
$object=new B(new A());
$object->someFunction();
你是如何使用B的?这很有效。谢谢@Sahil Gulati。但是我想知道为什么PHP不支持$this->a::MY_常量。PHP糟透了@selimahmud PHP在PHP中不支持我们可以使用classname::constant\u name
访问常量,所以这里我们将classname作为字符串并访问常量
<?php
ini_set('display_errors', 1);
class A{
const MY_CONSTANT = 'my constant';
}
class B{
protected $a;
public function __construct(A $a)
{
$this->a = $a;
}
public function someFunction()
{
$class=get_class($this->a);
echo $class::MY_CONSTANT;
}
}
$object=new B(new A());
$object->someFunction();
class A{
const MY_CONSTANT = 'my constant';
public function __get($key){
$r = new ReflectionObject($this);
if($r->hasConstant($key)){ return $r->getConstant($key); }
}
}
class B{
public function someFunction()
{
return new A();
}
}
$b = new B();
var_dump($b->someFunction()->MY_CONSTANT);