Parse-Fehler: Syntaxfehler, unerwarteter 'Unset' (T_UNSET)

7

Ich benutze eine einfache php unset () -Funktion, um Array zu entfernen und zu indizieren, aber es zeigt einen Fehler an

%Vor%

Fehler. Hier ist der Syntex

%Vor%

Vielen Dank im Voraus.

    
Khandad Niazi 30.01.2014, 06:42
quelle

3 Antworten

17

Versuchen Sie dies, Grund für unset($linkExtHelp[0]) Zuweisung an die Variable echo $totalArray = Sie können den unset() -Wert nicht der Variablen zuweisen. Sie können dazu verwenden, vor und nach dem Deaktivieren wie unten zu überprüfen. Mit anderen Worten, unset hat keinen Rückgabewert, da unset eine Lücke ist. Void - liefert seinem Aufrufer keinen Ergebniswert.

Syntax: void unset (gemischtes $ var [, gemischtes $ ...])

%Vor%

statt

%Vor%     
Krish R 30.01.2014, 06:47
quelle
7

unset gibt keinen Wert zurück - it kann nicht sinnvoll als Ausdruck verwendet werden, selbst wenn eine solche Produktion akzeptiert wurde.

Der Parse-Fehler wird jedoch verursacht, weil unset ein Schlüsselwort ist und eine "spezielle Produktion": Obwohl unset wie eine Funktion aussieht, ist es nicht eine Funktion 1 . Daher ist unset nur als eine Anweisung 2 für die Sprachgrammatik gültig.

Die Produktion kann in zend_language_parser.y gefunden werden:

%Vor%

1 Die Syntax ist auf historische Design-Entscheidungen zurückzuführen, und wohl aus Konsistenzsicht ein Fehler:

  

Hinweis: Da [unset] ein Sprachkonstrukt und keine Funktion ist, kann es nicht mit variablen Funktionen aufgerufen werden.

2 Es gibt auch "(nicht gesetztes) Casting", aber ich ignoriere das hier.

    
user2864740 30.01.2014 06:50
quelle
0

Sie können nicht "unset" zuweisen. So mache ich es. Sie müssen ein temporäres Array erstellen.

%Vor%

Ich hoffe, es hilft.

    
pulla 30.06.2016 04:49
quelle

Tags und Links