echo "psProp = " . parent::$psProp . "\n"; echo "MYPI = " . parent::MYPI . "\n"; } public function b2() { echo "Inside " . __METHOD__ . "\n"; } // The following 3 members override those in class M public static function psf() { return 123; } public static $psProp = 999; const MYPI = 3.14159; } var_dump(M::psf()); // okay to access static method via class $memName = 'psf'; var_dump(M::$memName()); // string form allowed //var_dump(M::'psf'()); // but not string literal var_dump(M::$psProp); // okay to access static property via class, but leading $ needed!! $memName = '$psProp'; //var_dump(M::$memName);// Access to undeclared static property: M::$memName //var_dump(M::memName);// Undefined class constant 'memName' var_dump(M::MYPI); // okay to access const via class $memName = 'MYPI'; //var_dump(M::$memName); // Access to undeclared static property: M::$memName $clName = "M";