""melfar"" <mel...@gmail.com> wrote in message news:0f.f6.03668.ad206...@pb1.pair.com... > Hey, > > Yep, I think there might be some caveats to that change. > The original patch did not work on methods, so I've fixed that and also > made the return value an rvalue, so that you can't attempt to modify the > temporary value, the zend_check_writable_variable guard will yield an > error. > > The updated patch can be found at http://bugs.php.net/bug.php?id=50003 > > I've also heard an opinion that adding this construction is just going to > make things more > complicated, but take this: chained -> operators are supported for return > values and I'm only seeing code getting simpler because of that. > > Br, > -melfar
- the patch introduces 5 more grammar conflicts. Did you check them all? - can't call the results useful. Instead of returning possibly long array and fetching just one element, why not to add an argument to the funtion - the index of the element to be returned? - if you badly need the "function" returning an array and you prefer syntax to performance, think about indexed class property implemented via setters/getters: class A { public function __get($prop) { if ($prop == "b") return array('a' => 'b'); } } $a = new A(); echo $a->b['a']; Class instance is where you'll keep the context. If you don't need any context, static properties would be useful, but they can't be implemented via setters/getters and this is a thing should be changed in order to get the following sample working: <?php class A { public static function __get($prop) { if ($prop == "b") return array('a' => 'b'); } } echo A::$b['a']; ?> I think php is not that bad after all :) just 2c. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php