php nesne: bilgisayarlı adıyla özelliğinin değerini almak

3 Cevap php

I zamanında adını hesaplamak olmadığını nasıl, adıyla bir nesnenin niteliğini erişebilirim?

Ie. i tuşlarının üzerinde döngü ve nitelikleri "field_" her değerini almak istiyorum. $ anahtar

Python getAttribute var (myObject, attrname)

It works, of course, with eval("$val=$myobject->".$myattr.";"); but IMO this is ugly!!

TIA florian

3 Cevap

PHP bir çok güçlü özelliği Variable Variables olduğunu aklınızda hep tutun

Kullanabilirsiniz

$attr = 'field' . $key;
$myobject->$attr;

veya daha özlü, kıvırmak dirseklerini kullanarak

$myobject->{'field_'.$key};

Ile reflection,

$reflectedObject = new ReflectionObject($myobject);
$reflectedProperty = $reflectedObject->getProperty($attrName);
$value = $reflectedProperty->getValue($myobject);

O korunuyor veya özel bir istisna occurr eğer erişilen özellik, kamu ise bu sadece çalışır.

Bu eski bir konu olduğunu biliyorum, ama neden sadece sihirli yöntemleri kullanmak değil?

$myObj->__get($myAttr)