2016-07-10 24 views
0

Wenn wir nicht definieren Variable, bekommen wir Nachricht, zum BeispielEcho Nullwerte in PHP

<?php 
echo $a; 

Aber wenn null gesetzt, so erhalten wir leeren String? http://sandbox.onlinephpfunctions.com/code/602702f85a54ec4b42bfff22ca25127c4a4c9ace

<?php 
$a = null; 
echo $a; 


$str = DB::find()->select('name')->where(['id' => 1])->one(); //returns null or string name 

echo $str; 

Ist es üblich Verwendung dieser Ansatz für die zurückgegebenen Werte von DB oder eine Funktion oder ist dies nicht dokumentierte Funktion?

Oder besser behandeln vars so?

<?php 
echo $a ?: ''; 

Dank

+1

Ist nicht NULL und ein leerer String die gleiche Sache visuell? Nichts zu sehen. Ist das wirklich wichtig? –

+0

Was genau ist Ihr Ziel? Bitte klären Sie das zuerst. –

+0

'strval (NULL) ===" "'. – Sumurai8

Antwort

0

PHP verfügt über eine Funktion als „type juggling“ bekannt ist, wo, wenn eine Funktion auf einige Daten aufgerufen wird, der nicht unterstützt wird, wird versuchen, PHP die Daten in ein nutzbares Format zu konvertieren. Zum Beispiel wird echo 1234;1234 ausgeben, anstatt einen Fehler zu werfen (wie 1234 ist kein String).

Jetzt ist null der Typ, der mit der leeren Zeichenfolge jongliert wird, da es wahrscheinlich die logischste Sache ist, in diese zu konvertieren (null, die das Konzept von nichts darstellt). Dieses Verhalten ist unter dem Konvertieren zu Zeichenfolge-Abschnitt definiert.

+0

Danke für den Link "hier". Ich habe es gegoogelt aber nicht gefunden, nur ähnliche Fragen zu stackoverflow :) – sergey