2016-06-23 16 views
0

に保存されているクラスから静的変数:アクセスクラス与えられた変数

class SomeClass{ 
    static $information = 'useful information'; 
} 

私はPHPクラスのセットで静的変数にアクセスしようとしています。各クラスに$情報静的変数があります。私は静的変数にアクセスする場合は、直接

echo SomeClass::$information; 

プログラムは情報を出力し、私はそれが変数に格納するアクセスしようとすると、しかし、私はエラーを取得する「::」は予想外であること。

$class = SomeClass; 
echo $class::$information; 

Iは、例えばユーザーのアレイまたはプロジェクトのアレイを作成することができる機能を有することができるように、変数にクラスを格納するための理由があります。

+0

あなたが変数にクラスを保存する必要があるのはなぜ?何があなたを得るでしょう。 –

+0

https://eval.in/594385 – splash58

+0

静的関数 'static function getInformation(){return $ self :: $ information;}'が '::'が予期しないものとして記述されています。 $ selfがオブジェクトではないため、 'static function getInformation {return $ self - > $ information;}'もありません。 – user1320619

答えて

1
class SomeClass { 
    public static $information = 'useful information'; 

    public static function getInformation() { 
    return self::$information; 
    } 
} 

その後、次の操作を実行できます。

# Static Access 
echo SomeClass::$information; 
echo SomeClass::getInformation(); 

# Static Access via Class Name in Variable 
$someClass = 'SomeClass'; 
echo $someClass::$information; 

## Instantiated access 
$someClass = new SomeClass(); 
echo $someClass->$information; 
echo $someClass->getInformation(); 
0

変数にクラスへの参照を格納することはできません。無用です。

は、代わりに、変数にクラス名を格納し、静的メソッドや変数を呼び出すことができます:あなたはこれを行うことができ

$class = 'SomeClass'; 
echo $class::$information; 
0

$class = SomeClass::class; 
echo $class::$information; 

::classは、クラスの完全修飾名を取得します文字列として。

+0

これは、どのバージョンのPHPですか? – user1320619

+0

@ user1320619 PHP 5.5、http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.class.class – Benten