That would be nice and all, but I'd rather we add methods to arrays. On Jul 17, 2012 1:26 AM, "David Muir" <davidkm...@gmail.com> wrote:
> On 14/07/12 01:33, Anthony Ferrara wrote: > >> Hey all, >> >> I know that 6.0 was originally supposed to be the unicode conversion of >> the >> engine. However it appears that all progress on that has stopped for quite >> some time. >> >> So, I was curious if we could start a conversation around what 6.0 would >> look like if we didn't go the unicode route. What would be the major >> changes that we'd base it on. >> >> Here are a few of the ideas that have been floating around in my head. >> >> 1. Change the error handling system from the current E_* system to typed >> exceptions for everything but advisory errors (E_STRICT, E_NOTICE, >> E_DEPRECATED). Why? Because the current error system encourages ignoring >> or >> not checking what the error was, and it makes defensive programming quite >> difficult. This is arguable and preference for sure, but it's a major >> change that could have large benefits. >> >> 2. Make namespaces first-class meta-objects. That way, you could have >> namespace private and protected classes, functions, variables, etc. This >> would allow for better scoping of modules... >> >> 3. Make all zval types pseudo-objects. Basically enabling something akin >> to >> auto-boxing allowing a significant amount of the standard library to be >> eventually deprecated in favor of acting on methods (not initially, but >> opens the door). >> >> 4. Rewrite the entire parser completely. I keep hearing about how bad >> PHP's >> parser is, and how it's growing out of control. Perhaps this is a good >> time >> to rewrite it (perhaps changing semantics slightly) to be better adapted >> towards future changes... >> >> I'm not saying all of them are solid. I'm not saying any of them are >> solid. >> But hopefully this can spark a discussion around it... >> >> Thoughts? >> >> Anthony >> >> > I'd *really* like to see the following being possible: > > $array = array('foo' => 'bar'); > $object = (object) $array; > > echo $array['foo']; //bar > echo $array->foo; //bar > > echo $object['foo']; //bar > echo $object->foo; //bar > > Is there a technical reason for the difference that currently exists? > > Cheers, > David > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >