2016-12-13 2 views
-1

Wie wir alle wissen, wenn eine Variable ohne Wert erstellt wird, wird ihr automatisch der Wert NULL zugewiesen.Warum wird der Wert 'NULL' einer Variablen nicht mit echo und print angezeigt, sondern mit der Funktion var_dump() angezeigt?

ich folgenden Code-Schnipsel haben:

<?php 
    $name; 
    echo $name;  
?> 

UND

<?php 
    $name; 
    print $name;  
?> 

Beide oben genannten Code-Schnipsel ausgegeben, wie unten (es ist genau das gleiche):

Notice: Undefined variable: name in C:\xampp\htdocs\php_playground\demo.php on line 7 
Ich habe einen anderen Codeausschnitt:
<?php 
    $name; 
    var_dump($name);  
?> 

Der Ausgang von oben (letzten) Codeausschnitt ist wie folgt:

Notice: Undefined variable: name in C:\xampp\htdocs\php_playground\demo.php on line 8 
NULL 

Also, meine Frage ist, warum der Wert „NULL“ wird nicht angezeigt wird, wenn ich versuche, es zu zeigen, echo und drucken?

Der Wert "NULL" wird jedoch angezeigt, wenn ich versuchte, ihn mit der Funktion var_dump() anzuzeigen.

Warum das passiert?

Was ist hinter diesem Verhalten?

Vielen Dank.

+1

hatte Weil beide 'echo' und' Druck 'Implizit wird ein Wert in eine Zeichenfolge umgewandelt. Und '(string) NULL' ist eine leere Zeichenfolge. Es ist also da, du kannst es einfach nicht sehen. Und 'var_dump' gemäß seinem Zweck wirft nichts als Dumps, wie es ist. – zerkms

+0

@zerkms: Was ich als Ausgabe der Funktion var_dump() sehe, ist die Zeichenfolge "NULL" auf einem Bildschirm. Diese Zeichenfolge ist ein Datentyp oder ein Wert einer leeren Variablen? – user2839497

+0

Es ist ein Wert 'NULL' vom Typ' NULL'. http://php.net/manual/en/language.types.php http://php.net/manual/en/language.types.null.php – zerkms

Antwort

4

Das Problem, das Sie haben, ist, dass NULL nicht irgendetwas ist - es ist die Abwesenheit eines Wertes.

Wenn Sie versuchen, echo oder print es, können Sie die Benachrichtigung über eine nicht definierte Variable erhalten, weil der Wert von $name auf nichts festgelegt ist, und Sie können nicht echo die Abwesenheit von etwas.

$name; 
var_dump($name); 

Der Ausgang dieses wird NULL, Ihnen zu sagen, dass die Variable keinen Wert hatte. Es ist nicht eine Zeichenfolge mit dem Wert von "NULL", es ist nur NULL, nichts, die Abwesenheit von etwas.

Vergleichen Sie dies mit den folgenden:

$name = ''; 
var_dump($name); 

Diese gibt string(0)"" - das sagt Ihnen, dass $name einen Wert haben, DID, die eine String war, die keine Zeichen enthalten („“) in Höhe von insgesamt eine Länge von .

Schließlich sehen Sie die folgenden Schritte aus:

$name = 'test'; 
var_dump($name); 

Diese gibt string(4)"test" - eine String enthält Test, die eine Länge von

+0

Sprichst du die Ausgabe von ist als Datentyp "NULL" und nicht als Wert "NULL"? – user2839497

+0

Fast - NULL ist weder ein Wert noch ein Datentyp, sondern eine Konstante, die das Fehlen eines Wertes darstellt. Es ist ein ganz besonderer Fall. –

+1

"Es ist die Abwesenheit eines Wertes." --- Das ist irreführend. '$ a = null;' <- In dieser Anweisung habe ich der Variablen explizit einen bestimmten Wert zugewiesen. – zerkms

Verwandte Themen