Arasındaki fark nedir if ($ this-> _hasParam ('isim') ve if ($ this-> _getParam ('isim')), Zend

2 Cevap php

Ben bir yayınlanmıştır formu değeri 'name' i aşağıdaki kodu kullanmış bir value.For bu içerip, zend denetlemek istiyor

one method

if ($this->_getPatram('name') != null ) {
  echo 'field name contains value';
} else {
  echo 'field name contains  null value';
}

second method

if ($this->_hasParam('name')) {
 echo 'field name contains value';
} else {
  echo 'field name contains  null value';
}

output , when submitting the form with the 'name' field contains null value

in first method

alan adı null değer içeriyorsa (sonuç doğru)

in second method

alan adı değeri içerir (sonuç yanlış)

Yani bu ikisi arasındaki fark nedir? _hasParam ve _getParam

2 Cevap

$this->_hasParam('name') true döndürür çünkü ismiyle $this has Bir parametre name.

alan adı içeriyor değeri (result is wrong)

Doğru sonuçtur. Değeri null _hasParam fonksiyonu endişe değildir olur gerçeği - Aslında $this nesne name alanına sahiptir.

_hasParam kontrol etmek için kullanmak eğer nesne has, belirli bir parametre ya da değil ve _getParam o parametrenin get değerine.

Örneğin, gönderilen form adı foo, kullanmak bir özelliği olup olmadığını kontrol etmek istiyorsanız _hasParam("foo"). foo, kullanmak _getParam("foo") değerini almak için

_hasParam() param var olup olmadığını döndürür, ve _getParam() gerçek değerini döndürür. Fark, bu tür 0 veya '' olarak onlar var bile null eşit kabul edilir birkaç değerleri 'olduğu gerçeği yatıyor. === veya !== yerine karşılaştırmak için kullanın.