0

次の例 (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();

しかし、なぜ?1 つの式で二重コロンと矢印を使用することはできませんか? クラス b で getter メソッドを使用してから を呼び出すこともできます$this->p->get()が、上記の構文を使用したいと思います。

4

1 に答える 1

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
于 2013-12-30T11:17:17.503 に答える