2009-12-08 12 views

Antwort

9
if (isset($data)) { 

Variable wird nur gesetzt - vor dieser Zeile deklarierten wir neue Variable mit dem Namen 'Daten', das heißt data = $ 'abc';

if (!empty($data)) { 

Variable ist mit Daten gefüllt. Es kann kein leeres Array haben, weil dann $data einen Array-Typ hat, aber immer noch keine Daten hat, d.h. $ data = array (1); kann nicht null, leere Zeichenkette, leere Array, leeres Objekt, 0 usw.

if ($data != '') { 

Variable ist keine leere Zeichenfolge. Kann aber auch kein leerer Wert sein (Beispiele oben).
Wenn Sie Typen miteinander vergleichen möchten, verwenden Sie !== oder ===.

if ($data) { 

Variable wird mit beliebigen Daten ausgefüllt. Dasselbe wie !empty($data).

+1

[Das Handbuch] (http://php.net/manual/en/function.empty.php) stellt es so: 'empty()' ist das Gegenteil von '(boolean) var', ** außer dass keine Warnung generiert wird, wenn die Variable nicht festgelegt ist. ** Siehe auch [diese Antwort] (http://stackoverflow.com/a/4559976/758990). –

21

prüfen PHP-Handbuch heraus: http://www.php.net/manual/en/types.comparisons.php

 
Expression gettype() empty() is_null() isset() if($x) 
$x = "";  string TRUE FALSE TRUE FALSE 
$x = null;  NULL TRUE TRUE FALSE FALSE 
var $x;   NULL TRUE TRUE FALSE FALSE 
$x undefined NULL TRUE TRUE FALSE FALSE 
$x = array(); array TRUE FALSE TRUE FALSE 
$x = false;  boolean TRUE FALSE TRUE FALSE 
$x = true;  boolean FALSE FALSE TRUE TRUE 
$x = 1;   integer FALSE FALSE TRUE TRUE 
$x = 42;  integer FALSE FALSE TRUE TRUE 
$x = 0;   integer TRUE FALSE TRUE FALSE 
$x = -1;  integer FALSE FALSE TRUE TRUE 
$x = "1";  string FALSE FALSE TRUE TRUE 
$x = "0";  string TRUE FALSE TRUE FALSE 
$x = "-1";  string FALSE FALSE TRUE TRUE 
$x = "php";  string FALSE FALSE TRUE TRUE 
$x = "true"; string FALSE FALSE TRUE TRUE 
$x = "false"; string FALSE FALSE TRUE TRUE 

Wie Sie sehen können, if(!empty($x))-if($x) gleich ist und if(!is_null($x)) gleich if(isset($x)). Soweit $data != '' geht, ist es TRUE wenn $data nicht NULL, '', FALSE oder 0 ist (loser Vergleich).

4

Sie sind nicht das Gleiche.

  1. true, wenn die Variable gesetzt ist. Die Variable kann leer gesetzt werden und dies wäre wahr.

  2. true, wenn die Variable und nicht gleich leerer String, 0, '0', NULL, FALSE, leeres Array ist. es ist eindeutig nicht dasselbe wie isset.

  3. Wenn die Variable nicht gleich einer leeren Zeichenfolge ist, wird die Variable nicht als leere Zeichenfolge definiert.

  4. Wenn die Variable auf wahr triggert, wird die Variable auf false gesetzt, wenn die Variable nicht gesetzt ist.

0

if (isset ($ data)) - Legt fest, ob eine Variable gesetzt ist (hat Wette nicht 'unset()' und ist nicht NULL

if (empty ($ data)) -.! Ist eine Art Agnostiker Check für leer Wenn $ data '', 0, false oder NULL wäre, würde es "true" zurückgeben.

if ($ data!= '') {Dies ist ein String-Typ sicherer Daten zu prüfen, ob $ wird auf einen leeren String

if ($ data) nicht gleich {dies für wahr oder falsch ein suchen ist (aka: 0 oder 1)

+2

'if ($ data) {Dies ist ein Suchen nach wahr oder falsch (aka: 0 oder 1)' <- nicht ganz korrekt. Dies wird wahr sein, wenn '$ data' etwas enthält, das nicht in false aufgelöst wird (im Wesentlichen die gleichen Dinge wie'! Empty ($ data) ') –

Verwandte Themen