Re: Alias stdClass to DynamicObject?
| From: | Rowan Tommins | Date: | Wed, 08 Sep 2021 08:33:47 +0000 |
| Subject: | Re: Alias stdClass to DynamicObject? | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-116004@lists.php.net to get a copy of this message | ||
On 07/09/2021 17:15, Marc Bennewitz wrote:
* It's a class -> Why do we suffix it with "Object"?Classes are generally named to make sense when you have an instance: a class called "HttpRequest" is not saying that the *class* is a request, but that every *instance* is one, as in "$myRequest = new HttpRequest;" Similarly, "DynamicObject" is not saying that the *class* is an object (or dynamic, for that matter), but that every instance is: "$myObject = new DynamicObject;"
* Yes it's about dynamic properties - but is this the user goal to have dynamic properties or is it an implementation detail to get something else (map/dict)?I think a lot of uses of stdClass are precisely where people feel a map or dictionary *isn't* appropriate, and that's why they don't want to use an array: for instance, decoding a JSON string, or a database result row. The values aren't all of the same type, and you would never want to apply the same operation to all of them; you will probably initialise them once, and then access them by name, but don't have the facility to declare them up front. Regards, -- Rowan Tommins [IMSoP]