Ben boş olmadığını kontrol etmek için isset kullanarak bu kodu kullanıyorum:
if(!isset($this->objCodes[0]->SignupCode))$this->objCodes[0]->"NULL";
Ama çalışmıyor. Yardım?
Sen değer yararsız olabilecek bir değere sahip olmadığını denetlemek için boş kullanmak isteyebilirsiniz. Lütfen SignupCode (""
), 0, veya another empty value boş bir dize olmayacak, bu deneyin:
if(empty($this->objCodes[0]->SignupCode))
{
$this->objCodex[0] = null;
}
Ben bir veritabanından içe yaşıyorum eğer veritabanı tarafından kuruldu, çünkü ben arıyorum verileri her zaman isset()
true dönecektir, çünkü ben normalde kullandığınız nedeni empty()
olduğunu. Null veya boş dize ise gerçekten değişkenin içinde değerli bir şey olmadığı anlamına gelir gibi, daha çok ilgileniyorum.
Eğer bu gibi nesne içine değerleri yüklüyorsanız:
$result = mysql_query("Some Query");
while($temp = mysql_fetch_assoc($result)
{
$myObj = new stdClass;
$myObj->SignupCode = $temp['SignupCode'];
$myObjs[] = $myObj;
}
Böyle test, her zaman isset()
işlevine true
alacaksınız:
if(isset($myObjs[0]->SignupCode))
Değer teknik hep 'set' olacak çünkü
Aslında tüm ayarlanmış değilse görmek için çalışıyorsanız, bu deneyin:
if(!isset($this->objCodes[0]->SignupCode))
{
$this->objCodex[0] = null;
}
Ben alıyorsanız hata geçersiz özellik erişimcisi ->"NULL"
adlı olduğuna inanıyorum.
Isset fonksiyonu, size objCodes kontrol [0] indeksi gibi, bir dizi dizin olup olmadığını denetlemek için kullanılmalıdır:
if(isset($this->objCodes[0])) {
Eğer şu anda özelliğine sahiptir objCodes dizideki bir nesnenin tipini bilmeden SignupCode
Ben bir varsayılan ayar için bir cevap özgü olabilir ama olamaz ben sınıfını kullanırsanız {[(1)] } Bir örnek olarak, bu gibi dizi elemanı üzerinde varsayılan bir değer olabilir:
if(!isset($this->objCodes[0])) {
$this->objCodes[0] = new ObjectCode();
}
Ben bu kod bloğu ile ulaşmak için çalışıyoruz ne hakkında daha fazla bilseydim ben daha açıklayıcı olabilir.
Eğer gerçekten koleksiyonu her zaman geri ArrayAccess interface uygulanan bir kap oluşturmak ve daha sonra uygulamak olabilecek bir değer verdi emin olmak istedim UPDATE: offsetGet method a dönmek için İstenen dizin bulunamadı değilken varsayılan:
public class ObjectCodeContainer implements ArrayAccess {
private $collection;
public function __construct() {
$this->collection = array();
}
public function offsetGet($offset) {
if(!isset($this->collection[$offset])) {
$this->collection[$offset] = new ObjectCode();
}
return $this->collection[$offset];
}
// implement the other abstract methods
}