isset

___ answer2306986 ___

Weil es __isset überprüft, anstatt es abzurufen es mit __get.

Es ist eine viel bessere Option, __isset aufzurufen, da es keinen Standard für das gibt, was leer ist. Vielleicht ist im Rahmen der Klasse null ein akzeptabler Wert. Sie könnten auch eine Klasse haben, die, wenn das Element nicht existiert, ein neues leeres Objekt zurückgibt, das %code% bricht, da in diesem Fall immer true zurückgegeben wird.

    
___ answer2306999 ___

Es ist einfach nicht; Sie können stattdessen __isset verwenden. Dies ist hier festgelegt.

    
___ qstnhdr ___ Wird isetset () __get auslösen und warum? ___ answer2306991 ___

Nein, %code% sollte nicht ausgelöst werden, wenn Sie ermitteln möchten, ob eine Eigenschaft festgelegt ist: Testen, ob eine Eigenschaft festgelegt ist, ist nicht dasselbe wie das Abrufen des Werts.

Die Verwendung von %code% löst die %code% magische Methode aus.

Siehe:

___ tag123setset ___ Ermitteln, ob eine Variable gesetzt ist und nicht NULL ist ___ answer2306985 ___

Die magische Funktion __get wird nur aufgerufen, wenn Sie versuchen, auf eine Eigenschaft zuzugreifen, die nicht existiert. Überprüfen, ob eine Eigenschaft vorhanden ist, ist nicht dasselbe wie das Abrufen der Eigenschaft.

    
___ answer15039261 ___
%Vor%     
___ qstntxt ___
%Vor%

Scheint die Antwort ist nein, aber warum?

    
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___
6
Antworten

Die Verwendung von if (isset ($ _ POST ['submit'])), um kein Echo anzuzeigen, wenn das Skript geöffnet ist, funktioniert nicht

Ich habe ein kleines Problem mit meinem if(isset($_POST['submit'])) Code. Was ich möchte, sind einige Echos und eine Tabelle, die nicht angezeigt wird, wenn das Skript geöffnet ist, aber ich möchte, dass es angezeigt wird, wenn auf die Schalt...
15.10.2011, 03:07
5
Antworten

Wird isetset () __get auslösen und warum?

%Vor% Scheint die Antwort ist nein, aber warum?     
21.02.2010, 18:48