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
 }