2011-07-20 15 views
5

Bu basit sorunu yaşıyorum. Bu basit komut dosyasında:Bir nesnenin özellikleri boyunca yineleyin ve özgün nesneyi değiştirin.

<?php 

class MyClass { 
    public var1 = '1'; 
    public var2 = ''; 
    public var3 = '3'; 
} 

$class = new MyClass; 

foreach ($class as $key => $value) { 
    echo $key . ' => ' . $value . '<br />'; 
} 

?> 

sonuç şöyle olacaktır:

var1 => 1

var2 =>

var3 =>

Ben yinelemenize istiyorsanız 3 tüm bu özellikler, hangisinin boş olduğunu öğrenebilmem için, bu boş nesneye bir değeri nasıl atayabilirim? PHP $value gerçek bir değişken değil, bir referans olduğunu düşündüğü tahmin çünkü

foreach ($class as $key => $value) { 
    if (empty($value)) { 
     $value = 'something'; 
    } 
} 

... çalışmıyor.

cevap

16

bu deneyin:

foreach ($class as $key => $value) { 
    if (empty($value)) { 
     $value = 'something'; 
     $class->$key = $value; 
    } 
} 
+0

Basit, zarif ve etkili. Bunu hiç düşünmedim, bilmiyorum! Bir milyon teşekkürler. – AeroCross

İlgili konular