On Oct 30, 11:04 pm, Calvin <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I am finding difficult to understand why this isn't working...
>
> <?php
>
> abstract class A {
>     protected static $property = false; # Q1
>     public static function method() { # Q2
>         return self::$property;
>     }
>
> }
>
> class B extends A {
>     protected static $property = true; # Q1
>
> }
>
> var_dump(B::method());
>
> It prints False and I expect it to be True...
>
> Q1. Does B::$property suppose to overwrite B::$property?
> Q2. when B::method() is called, shouldn't it return B::$property (even
> though the method is declared in A)?
> Q3. Anyways to change the code to work as my expectation?
>
> Thanks in advance

I think the answer to both of these has to do with how static
variables are bound.  You should look up late static binding as it is
designed to solve these issues.

-Mark
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to