PHP: Boş Değişken veya ayarlanmamış ya da ne?

4 Cevap php

Bu dört PHP tablolar arasındaki fark nedir?

if (isset($data)) {

if (!empty($data)) {

if ($data != '') {

if ($data) {

Hepsi aynı musunuz?

4 Cevap

if (isset($data)) {

Variable is just set - before that line we declared new variable with name 'data', i.e. $data = 'abc';

if (!empty($data)) {

Variable is filled with data. It cannot have empty array because then $data has array type but still has no data, i.e. $data = array(1); Cannot be null, empty string, empty array, empty object, 0, etc.

if ($data != '') {

Variable is not an empty string. But also cannot be empty value (examples above).
If we want to compare types, use !== or ===.

if ($data) {

Değişken herhangi bir veri ile doldurulur. Aynı şey !empty($data).

PHP kılavuzu Çıkış: 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

Kolayca görebileceğiniz gibi, eğer (! Boş ($ x)) ($ x) ve eğer (! Is_null ($ x)) eşit değerlendirir eğer eşit değerlendirir if (isset ($ x)). $ Veri null değilse Bildiğim kadarıyla ($ data! ='') Giderse gibi, o,'', (gevşek karşılaştırma) YANLIŞ veya 0 doğrudur.

Onlar aynı değildir.

  1. true değişkeni ayarlı ise. değişkeni boş ayarlanabilir ve bu doğru olurdu.

  2. true değişken ayarlanırsa and eşit değil boş dize, 0, '0 'yapar, null, YANLIŞ, boş bir dizi. açıkça isset olarak aynı değildir.

  3. değişkeni boş bir dize ayarlı değilse değişken, boş bir dize eşit değilse.

  4. değişkeni true zorladı eğer değişken ayarlı değilse, false zorlamak olacaktır.

(isset ($ veri)) - eğer bir değişken ('unset()' bahis değil ayarlanırsa belirler ve değil NULL.

(! boş ($ veri)) - eğer boş bir tip agnostik çek mi $ veri'', 0, yanlış, ya da NULL ise bu doğru dönecekti.

($ data! ='') {$ this veri boş bir dizeye eşit olup olmadığı kontrol güvenli bir dize türü ise

($ data) {bu bir arıyor eğer doğru veya yanlış (aka: 0 veya 1)