2016-05-10 11 views
1

私はNetbeans 8最新ビルドを使用してPHP 7コードを編集します(Netbeans 8.1はまだPHP 7をサポートしていないため)。PHP7 NetBeans 8静的クラスの静的変数を定義します。

<?php 

class helloc { 
    public static $first = 1; 
} 

class mainc { 
    public static $another = NULL; 

    public function example() { 
     self::$another = new helloc(); 
     self::$another::$first = 2; 
     echo self::$another::$first; 
    } 
} 

$n = new mainc(); 
$n->example(); 

?> 

のNetBeans IDEのDev(201605100002の構築)PHP7は言って、この行のためERROR:このための適切な方法は何ですか

自己:: $別:: $最初= 2;

が予期しない::

また、この行があまりにもエラーが発生しました:

は自己::エコー$別::最初の$。 予期しない::

これはどのような用途に適していますか? このコードを開始すると、エラーなく動作します。大丈夫です?またはNetbeans IDEのバグ?

$変数を宣言するにはどうすればよいですか? NULLは大丈夫ですか?または他の方法? この例では$ anotherを静的な "helloc"クラスとして宣言したいと思います。 この静的クラスから変数にアクセスしたいです。私は知っている、私はget/set関数を宣言することができますし、それは本当に良いですが、それは他の質問が良いです。

私は、適切なPHP7コードを作成したいだけです。

+2

私は理解できません...他の静的変数で参照されている静的変数にアクセスしようとしています。これは意味がありません ! '$ self :: $ another :: $ first'は' $ first'が静的なので、 'helloc :: $ first'で十分です。 コーディングを進める前に解決しなければならない概念上の問題が考えられます。 PHP7とNetbeansはこれとは関係ありません。 – Unex

+0

しかしこれも私が例として取り上げたものです。私は静的オブジェクト+ PHPの初心者です:-)したがって、静的クラスの定義は何ですか?少なくとも1つの静的変数を持つクラス?クラス、静的変数とは何ですか? static $ abc = NULLのように。次にself:$ abc = new xclass(); ? –

+1

使用する構文は有効なPHP 7(PHP 5ではなく)の構文です。しかし、それは非常に珍しいです(Netbeansはそれを認識しませんので、驚くことはありません)。とにかく静的変数の使用は一般に推奨されません。 – NikiC

答えて

0

UPDATE 1、多分自分の質問のためのソリューション:クラスの静的および非静的変数を持っていた場合

class helloc { 
    public static $first = 1; 
    public $last = 3; 
} 

class mainc { 
    public $another = NULL; 
    public function example() { 
     helloc::$first = 2; 
     echo helloc::$first; 
     $this->another = new helloc(); 
     $this->another->last = 4; 
     echo $this->another->last; 
    } 
} 

$n = new mainc(); 
$n->example(); 

だから、これはPHP7との適切な使用法とは?

アクセス静的変数の場合、new()を使用する必要はありません。 new()を使用して非静的に作成する必要がありますか?

関連する問題