2016-05-10 34 views
1

Ich benutze Netbeans 8 neuesten Build für die Bearbeitung von PHP 7 Code (weil die Netbeans 8.1 immer noch nicht unterstützt PHP 7), aber Netbeans IDE sagte, dass ich etwas falsch machen. Was ist die richtige Methode dafür:PHP7 definieren statische Variable für statische Klasse in 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 (201.605.100.002) Erstellen Sie mit PHP7 ERROR sagte für diese Linie:

self :: weitere $ :: $ first = 2;

unerwartet ::

Auch diese Zeile zu Fehler hatte:

Selbst echo :: andere :: first $ $; unerwartet ::

Was ist die richtige Verwendung dafür? Wenn ich diesen Code starte, funktioniert es ohne Fehler. Es ist in Ordnung? Oder Netbeans IDE Bug?

Wie kann ich die Variable $ another deklarieren? NULL ist in Ordnung? Oder andere Wege? Ich möchte $ another als statische "Helloc" -Klasse in diesem Beispiel deklarieren. Ich möchte auf Variable von dieser statischen Klasse zugreifen. Ich weiß, ich kann ein Get/Set-Funktionen erklären und es ist wirklich schöner, aber es ist eine andere Frage, was ist besser.

Ich möchte nur einen richtigen PHP7-Code erstellen.

+2

Ich verstehe nicht ... Sie versuchen, auf eine statische Variable zuzugreifen, die in einer anderen statischen Variablen referenziert wird. Das macht keinen Sinn ! Sie müssen nicht '$ self :: $ another :: $ first', da' $ first' statisch ist, ist 'helloc :: $ first' ausreichend. Sie haben wahrscheinlich ein konzeptionelles Problem, das Sie lösen sollten, bevor Sie mit der Programmierung fortfahren;). PHP7 und Netbeans haben damit nichts zu tun. – Unex

+0

Aber das funktioniert auch, was ich als Beispiel beigefügt habe. Ich bin Neuling in statischen Objekten + PHP :-) Also, was ist die Definition der statischen Klasse? Klasse mit mindestens 1 statischen Variable? Oder eine Klasse, was definiert als statische Variable? Wie statisch $ abc = NULL; dann self: $ abc = new xclass(); ? –

+1

Die Syntax, die Sie verwenden, ist gültige PHP 7 (aber nicht PHP 5) -Syntax. Es ist jedoch sehr ungewöhnlich (also keine Überraschung, Netbeans erkennt es nicht) und sehr wahrscheinlich nicht, was Sie tun möchten. Im Allgemeinen wird von statischen Variablen abgeraten. – NikiC

Antwort

0

UPDATE 1, Lösung vielleicht für meine eigene Frage: wenn in der Klasse hatte statische und nicht-statische Variablen

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(); 

Also, das mit PHP7 die richtige Verwendung ist?

Für den Zugriff auf statische Variablen, keine Notwendigkeit, new() zu verwenden. Für nicht statische müssen mit neuen() erstellen, oder?