Stanislav Malyshev wrote:
Add JSON_Serializable interface
Objects implementing JSON_Serializable will have
their ->jsonSerialize() method called

Similar to serialize() and __sleep()

Why should we have special mechanism for JSON? I.e., now we have one for serialize(), separate one for json, then we'd have separate one for storing object as XML or YAML, etc. etc. IMHO it's not a very good design - having separate method for every format of data storage. Why can't we just use whatever serialize() would see and wrap it in JSON after that?
Because there's no reason to believe that you want serialize() to capture the same data as json_encode().

One is meant for freezing and restoring a given object with preservation of state and type while the other is not (i.e. unserialize() returns to a specific object type via __wake() while json_decode() simply becomes a stdClass object).

serialize() stores objects in files and apc caches and *perhaps* is used for trading between PHP instances via IPC. JSON serializes data for use by Javascript on web pages. Very different use-cases.

I suppose serialize() could be dual purposed, but that requires using debug_backtrace() in an awfully wasteful way IMO.

-Sara

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to