类成员对象的访问常量不起作用

时间:2013-12-30 11:07:44

标签: php static class-constants

如果我尝试以下示例(PHP 5.4),我会收到以下错误:

  

解析错误:语法错误,意外的'::'(T_PAAMAYIM_NEKUDOTAYIM),期待','或';'

class a {
    public $p;
    public function __construct() {
        $this->p = new b;
    }
    public function giveout() {
        echo $this->p::c;
    }
}
class b {
    const c = '234';
}
$obj = new a;
$obj->giveout();

但为什么呢?是不是可以在一个表达式中使用双冒号和箭头? 我知道我也可以在类b中使用getter方法,然后调用$this->p->get(),但我更愿意使用上面的语法。

1 个答案:

答案 0 :(得分:0)

重写

echo $this->p::c;

echo $this->p=b::c;

和..

$a->giveout();

$obj->giveout();


全部放在一起......

<?php
class a {
public $p;
public function __construct() {
$this->p = new b;
}
public function giveout() {
echo $this->p=b::c;
}
}
class b {
const c = '234';
}
$obj = new a;
$obj->giveout();

输出:

234