PHP değişken veya ayarlanmış olabilir veya olmayabilir 'olsun' okumaya

3 Cevap php

Basitçe söylemek gerekirse, bir get değişkenin değerini okumak için çalışırsanız, ne dedi değişken URL içine koymak olmasaydı olur. Örnek: test.php, bu dosyanın o $_GET['message'] değerini okumaya çalışır sayfayı istemek. Bu durumda ne olur? değer sadece'' olarak döndü olsun doz?

Ben her zaman girilecek bir değer bekliyor, ve'' bir değeri kabul etmek için istekli değilim değilim, ben sadece böyle bir şey yapabilir ki, bu ortalama doz

$foo = $_GET['bar'];
if($foo == ''){
  // Handle my 'error'
}
else
{
  // $foo should now have a value that I can work with
}

Bir değeri varsa ben sadece bakım, o değilse veya umurumda değil, ben isset($_GET['bar']) kullanabilirsiniz biliyorum Ama ben sadece ayarlanmış olup olmadığını bilmek istemiyorum akılda çıplak Lütfen bu sadece boş bir dize daha sonra olduğunu.

3 Cevap

Değer aslında ayarlanır eğer umurumda değil, bu kullanabilirsiniz:

if (empty($_GET['bar']))
    // value is null, false, 0, '0' or an empty string (including whitespace).

Eğer denemek ve var olmayan bir dizi öğeye erişmek ise, sonucu ne olacak null.

$foo = $_GET['bar']; //$foo is now null

Bu zayıf kullanıyorsanız comparison operator == yerine sıkı Comparsion daha ===, sonra da '' olarak kabul edilecektir fazlalaştı null.

Yukarıdaki kod ile Dezavantajı biraz dağınık olduğu varolmayan bir dizin ile dizi eriştiklerinde bir haber oluşturmak olacaktır.

Eğer bir değişkene içerdiği değeri atamak için önce değer ayarlanırsa Dolayısıyla kontrol etmelisiniz.

if ( !isset($_GET['bar']) ){
    //handle error or assign default value to $foo
}else{
    $foo = $_GET['bar'];
}

Varsayılan bir değer var ve $ _GET değer kullanabilirsiniz varsa, sadece o varsayılan değeri değiştirmek istiyorsanız conditional operator ("Üçlü Operatörü" aşağı kaydırın)

$foo = isset($_GET['bar']) ? $_GET['bar'] : 'default value';

Eğer doğru anlamak bu kadar:

$foo = $_GET['bar'];
if ((!isset($foo)) || $foo == '') {
//GET veriable not set, error
}
else {
// GET veriable set, code here.
}