Możliwe Duplikat:
Casting an Array with Numeric Keys as an ObjectKonwersja do object indeksowaną
Zastanawiałem (object)
typu odlewów.
Jest możliwe, aby zrobić wiele pożytecznych rzeczy, jak konwersja tablicy asocjacyjnej do obiektu, a niektóre nie tak użyteczne i nieco zabawne (IMHO) rzeczy, jak converting a scalar value to object.
Ale w jaki sposób mogę uzyskać dostęp do wyniku rzutowania tablicy indeksowanej?
// Converting to object an indexed array
$obj = (object) array('apple', 'fruit');
Co powiesz na dostęp do określonej wartości?
print $obj[0]; // Fatal error & doesn't have and any sense
print $obj->scalar[0]; // Any sense
print $obj->0; // Syntax error
print $obj->${'0'}; // Fatal error: empty property.
print_r(get_object_vars($obj)); // Returns Array()
print_r($obj); /* Returns
stdClass Object
(
[0] => apple
[1] => fruit
)
*/
następujące prace, ponieważ stdClass
narzędzia dynamicznie Countable
i ArrayAccess
:
foreach($obj as $k => $v) {
print $k . ' => ' . $v . PHP_EOL;
}
Dzięki za odpowiedź. Wiem, że to jest brudne i nigdy nie rzucę indeksowanej tablicy ... ale jestem ciekawy :-) Szukałem _clean_ sposobu, aby to zrobić, a nie tylko obejścia. Po tym, jak [Mattew] (http://stackoverflow.com/users/259778/matthew) zauważył mnie o zduplikowanym pytaniu, przeczytałem zaakceptowaną odpowiedź i zaproponowałem ci edycję. –