Czy można to zrobić w php?Jak utworzyć instancję stdClass na miejscu?
kod JavaScript:
var a = {name: "john", age: 13}; //a.name = "john"; a.age = 13
instancję zmiennej klasy stdClass w locie?
Czy można to zrobić w php?Jak utworzyć instancję stdClass na miejscu?
kod JavaScript:
var a = {name: "john", age: 13}; //a.name = "john"; a.age = 13
instancję zmiennej klasy stdClass w locie?
Spróbuj użyć składni tablicy asocjacyjnej i rzucając do object
:
$a = (object)array('name' => 'john', 'age' => 13);
echo $a->name; // 'john'
Można również zrobić:
$a = new stdClass;
$a->name = 'john';
$a->age = 13;
inny sposób:
$text = '{"name": "john", "age": 13}';
$obj = json_decode($text);
Wymaga znacznie więcej przetwarzania niż rzutowanie tablicy na obiekt. – steampowered
Casting wydaje się najlepszą metodą, ale myślę, że rzuciłeś go (obiekt), a nie (stdClass), jak na http://php.net/manual/en/language.types.type-juggling.php –
@adam: prawda jesteś. Czy 'stdClass' używa do pracy czy coś? Mam w głowie, że zadziałało to kiedyś. –
Myślę, że php zawsze zgłasza obiekty jako stdClass (z var_dump, itp.), Ale rzeczywisty typ jest obiektem. Powinien być taki sam w obu kierunkach, jeśli mnie pytasz. –