public function __construct($p1) { $this->prop = $p1; echo "Inside instance " . __METHOD__ . "\n"; parent::__construct(); M::__construct(); // allowed N::__construct(); // allowed $clName = "M"; $clName::__construct(); // allowed // "M"::__construct(); // not allowed // can call instance and static methods using both -> and :: $this->gi(); // $this explicitly used (and passed) P::gi(); // $this implicitly used (and passed) self::gi(); // $this implicitly used (and passed) $this->gs(); // call to static method, so no $this passed P::gs(); // call to static method, so no $this passed self::gs(); // call to static method, so no $this passed }