Electronics & Programming

develissimo

Open Source electronics development and programming

  • You are not logged in.
  • Root
  • » PHP
  • » [PHP-DEV] object-overloading: why not allow recursive calls? (5.1) hey, in zend_object_handlers.c function zend_std_read_property we protect against calling the __get function of an object if we're [RSS Feed]

#1 Nov. 4, 2005 08:40:42

Thies C.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

[PHP-DEV] object-overloading: why not allow recursive calls? (5.1) hey, in zend_object_handlers.c function zend_std_read_property we protect against calling the __get function of an object if we're


hey,in zend_object_handlers.c function zend_std_read_property we protectagainst calling the __get function of an object if we're already in a__get() function. (look for zobj->in_get) in that function.i don't think we should be doing this.

simplyfied example:
<?php
class test {
function __get($offset) {
echo "__get($offset)\n";
switch ($offset) {
case 'name': return "name";
case 'length': return strlen($this->name);
}
}
}

$a = new test;
var_dump($a->length);
?>

outputs:
__get(length)
int(0)

but should say:
__get(length)
__get(name)
int(4)i think recursive gets are highly useful and should be allowed. if wereally want to protect against recursion (here) we have two realoptions: -a- protect against __get(ing) the same property more thanonce in the same call-chain (mucho work), or -b- (preferred) havesome global infinite recursion protection in the engine (needs to bedone somewhen anyhow, but not now).so, in one sentence: as we don't protect against recustion elsewhere,can we please remove this unneded roadblock?opinions?
-thies

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

Offline

  • Root
  • » PHP
  • » [PHP-DEV] object-overloading: why not allow recursive calls? (5.1) hey, in zend_object_handlers.c function zend_std_read_property we protect against calling the __get function of an object if we're [RSS Feed]

Board footer

Moderator control

Enjoy the 18th of November
PoweredBy

The Forums are managed by develissimo stuff members, if you find any issues or misplaced content please help us to fix it. Thank you! Tell us via Contact Options
Leave a Message
Welcome to Develissimo Live Support