note 44618 added to migration5.oop
| From: | rbates at delete_this_part dot artbeats dot com | 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