Re: magic getter
| From: | Matijn Woudt | Date: | Thu, 19 Jul 2012 19:36:04 +0000 |
| Subject: | Re: magic getter | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-318520@lists.php.net to get a copy of this message | ||
On Thu, Jul 19, 2012 at 9:22 PM, Sebastian <php-maillist@elygor.de> wrote:
> Hi all,
>
> is this a bug, or a feature?
>
> class Foo
> {
> private $data;
>
> public function __get($name)
> {
> return $this->data[$name];
> }
> }
>
> $foo = new Foo();
> $foo->color = 'red';
>
> echo $foo->color;
>
> I would expect an error, or a least a notice, but it prints out "red" ...
>
I guess it's some hidden feature. Since you're not required to declare
your variables in PHP, it's pretty much impossible to detect if this
is what the user wants or an error. In this case, PHP will declare a
public variable color inside the class for you.
- Matijn