public function __construct() { $this->publicProperty = 100; self::$publicStaticProperty = 1; Foo::$publicStaticProperty = 2; $this->protectedProperty = 200; self::$protectedStaticProperty = 1; Foo::$protectedStaticProperty = 2; $this->privateProperty = 300; self::$privateStaticProperty = 1; Foo::$privateStaticProperty = 2; $this->publicMethod(); $this->finalPublicMethod(); self::publicStaticMethod(); Foo::publicStaticMethod(); $this->protectedMethod(); $this->finalProtectedMethod(); self::protectedStaticMethod(); Foo::protectedStaticMethod(); $this->privateMethod(); $this->finalPrivateMethod(); self::privateStaticMethod(); Foo::privateStaticMethod(); echo self::ALWAYS_PUBLIC_CONST; echo Foo::ALWAYS_PUBLIC_CONST; }