Bu PHP koşul aynı veya bir avantaj var mı

5 Cevap php

Böyle bir PHP koşullu yazı için herhangi bir avantajı var:

if ($variable != NULL) {

karşı

if (!empty($variable)) {

karşı

if ($variable) {

Hepsi aynı şey değil mi? Sadece değişken var olup olmadığını anlatmaya çalışıyoruz eğer son her zaman basit gibi görünüyor. Beni buradan farkı anlamak yardımcı olduğunuz için teşekkürler. PHP 101 ilk günü cevapsız.

5 Cevap

I Sean ile katılıyorum ama ben her düz İngilizce ne anahat olacak:

if ($variable != NULL) {

$variable olacak NULL bu set edilmemiş ise. Bu pratik isset ile aynı ve değişken tanımsız olarak aynıdır.

if (!empty($variable)) {

Genellikle, bu $variable, bir dizge olarak ((string) $variable), bir strlen 0 sahip olup olmadığını denetler. Ancak {[(3)}] o [{return yapacak (4)}], irade 0 olmayan tamsayılar ve boş diziler gibi. Nedense (yanlış olduğuna inanıyorum ki) $variable = '0'; dönecektir için true.

if ($variable) {

Benzeri (boolean) $variable Bu doğru / yanlış çek eylemler - temelde değişken döner gerçek olmadığını bir mantıksal değere dönüştürüldüğünde.

Bunu düşünmek için bir yolu getirileri zıt değeri dışında, boş olarak aynı hareket ediyor olmasıdır.

I (boolean) $variable (tip döküm / hokkabazlık) ile ne demek hakkında daha fazla bilgi için bkz: Bu manual page.

(PHP Devs: Ben beni düzeltin lütfen buraya yanılıyorsam, bu, bellek ağırlıklı olduğunu!)

this table PHP karşılaştırma operatörleri üzerinde sıska almak için dışarı atın. Sadece tanımsız, sahte 0, "", BOŞ ve değişkenler arasındaki ince farklılıklar bir dizi var.

İlgili Soru: {: [(0)]}

Boş değerler, boş değerler, sıfır ve boolean değerleri ile uğraşırken temelde, onlar aynı değildir.

Katı hata modunda (E_STRICT), cümlelerinde çalıştırırken

if ($variable) {}

ve

if ($variable != null) {}

Bu değişkenler başlatılmamış zaman, Bildirimler atmak istiyorsunuz.

Notice: Undefined variable: variable

Başlatılmamış kullanımı olası bir güvenlik açığı olduğu için bu bildirimler, kod kusurları bir göstergesidir. (Anahtar kelime: register_globals'ı.)

Bir değişkenin varlığını kontrol etmek için benim favorim

if (isset($variable)) {}

Bu çekler, değişken (okuyun!: Değeri = null ile başlatılmış) daha önce kullanılmış olup olmadığını.