Was sind in PHP die Unterschiede zwischen NULL und dem Setzen einer Zeichenkette auf 2 einfache Anführungszeichen?
Ich verwendet, um Dinge wie diese, wenn ich wollte, dass leere Werte.
$blankVar = '';
Dann nach einigen Monaten, entschloss ich mich diese sah besser aus und hatte eine klarere Absicht.
$blankVar = null;
Dieser funktionierte ohne Schluckauf für eine Weile, aber vor kurzem mit PDO prepared statements, die ich lief in ein problem. Bindung ein Wert, um null aus der Abfrage fehl, während die Bindung an " nicht. Ich brauchte zum binden auf null, so dass, wenn eine Bedingung erfüllt wurde, es würde einfügen leeren Daten.
Was sind die Unterschiede zwischen den 2? Ich denke immer noch gleich null (oder zumindest eine Konstante) sieht besser aus, also sollte ich dies tun?
define('EMPTY', '');
InformationsquelleAutor der Frage alex | 2009-03-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Null ist nur ein weiterer Datentyp in PHP, die hat nur einen Wert (null). Da PHP ist eine loosly typisierte Sprache ist, kann es verwirrend sein, wie es verarbeitet unterschiedliche Werte.
"", 0, "0", False, array(), Null
sind alle als False in PHP.Null, jedoch ist eine andere Art von Tier. Die main Inkompatibilität mit der Verwendung von Null ist, kann man nicht sagen, wenn es isset().
Also null ist seltsam in dem Sinne, dass Sie nicht Folgen normalen variable Regeln in PHP (zumindest einige). In den meisten Fällen, ist das fein.
, Wenn es um Datenbank-Spalten, PHP NULL hat keinen Platz gibt. Sehen Sie, SQL ist ein string-basierte Sprache. SQL NULL sein muss, vertreten durch
NULL
ohne Anführungszeichen.Wenn Sie So wollen, ein LEERES Feld ist, setzen Sie ihn auf ""
Aber wenn Sie wollen, ein NULL-Feld, legen Sie es auf NULL
GROßEN UNTERSCHIED.
Aber wenn Sie versuchen, legen Sie die PHP-NULL, direkt, es fügt null-Zeichen, um die Abfrage, (das lässt Sie mit einer leeren oder syntax-Fehler, je nachdem, ob Sie zitierte Sie).
InformationsquelleAutor der Antwort gahooa
null ist ein spezieller Platzhalter, der Wert in der Programmier-Sprache, die wörtlich "nichts". Es ist nicht 0, es ist keine leere Zeichenfolge ist, ist es nichts. Es gibt keinen Wert im Speicher hinwies. Eine leere Zeichenfolge ist, auf der anderen Seite, ist immer noch ein string-Objekt, nur eine sehr kurze 🙂
InformationsquelleAutor der Antwort Rex M
Gut, es ist eine Sache, wie schön jeder Ansatz sieht, aber der Hauptunterschied ist, dass man einen leeren string und die andere ist eine nicht initialisierte variable (null)
InformationsquelleAutor der Antwort Alexandru Luchian
Abgesehen von dem Unterschiede festgestellt, die von Rex, es gibt zwei Arten der Vergleiche in PHP, loose und strict:
http://www.php.net/manual/en/types.comparisons.php
Wenn strenge Vergleiche oder Funktionen wie is_null() verwendet werden, die in irgendeiner Eigenschaft, Sie werden unterschiedliche Ergebnisse erhalten. Mit losen vergleichen, aber PHP ist ziemlich nachsichtig.
Ich weiß es nicht sicher, aber Sie können möglicherweise verwenden Sie Ihr null-Ansatz, dann nur festgelegt, wenn Sie die variable in dem Kontext, in dem Sie Probleme hatten (z.B. pass (string) $blankVar). Wenn das funktioniert, kann es bedeuten, weniger änderungen sind erforderlich, um Ihren code.
InformationsquelleAutor der Antwort Dan Fego
'null' ist die Sache eindeutig, dass nicht initialisierte Variablen finden. Sie können eine variable zu verweisen, auf null. Dort ist auch die 'unset' Zustand Bedeutung die variable existiert überhaupt nicht. Sie können überprüfen, dass über die isset () - Funktion. Die meisten Häufig verwendet, um zu überprüfen, ob ein element eines Arrays existiert und ist, zum Beispiel, ein Weg, um zu sehen, ob $_GET['op'] erhalten hat, einen querystring-Parameter param. Sie können auch eine variable unset (entfernen eines element von einem array) über die unset () - Funktion. Es gibt auch eine die Funktion empty(), die prüft, ob eine variable ist entweder NULL, FALSE, 0 oder einen leeren string
InformationsquelleAutor der Antwort Scott Evernden