note 44618 added to migration5.oop

From: Date: Wed, 11 Aug 2004 02:26:13 +0000
Subject: note 44618 added to migration5.oop
Groups: php.notes 
Request: Send a blank email to php-notes+get-79892@lists.php.net to get a copy of this message
The __get() function will not be called recersively. In other words, __get() will not be used if you attempt to retrieve an undefined property from $this while currently in __get(). Here is an example: <?php class Greater { function __get($name) { if ($name == "hi") { return $this->hello; } else if ($name == "hello") { return "Hello, World!"; } return "Unknown: $name"; } } $greater = new Greater; // This appropriately prints "Hello, World!" echo($greater->hello); // This reports "Notice: Undefined property: Greater::$hello // in /path/to/file/greater.php on line 8" echo($greater->hi); ?> I am assuming this is to stop infinite loops, but it is also annoying when done intentionally. ---- Manual Page -- http://www.php.net/manual/en/migration5.oop.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+44618 Delete -- http://master.php.net/manage/user-notes.php?action=delete+44618&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+44618&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#79892) next »