nut nut - 3 months ago 41
PHP Question

php static property

I have two code snippets (regarding the

keyword) which I expect them to have same output, but actually the outputs are different.

The question is why?

Snippet 1

class base
public static $var = 1;

class sub extends base
public static $var = 2;

echo base::$var; // Outputs 1


Snippet 2

class base2
public static $var2 = 1;

class sub2 extends base2

sub2::$var2 = 2;
echo base2::$var2; // Outputs 2



I would like to add one more point to it.

STATIC variable are not associated to any particular instance/object of a class. Hence you modify the variable with Parent Class reference or Child Class reference, the same copy gets modified.

Hence apart from understanding Public Static as Global, Please understand it as not associated to any particular instance, hence with any class hierarchy reference you update a static variable , same memory location gets updated.