// TT, because of "static". would be T, if it were "return new self" var_dump(TT::$hello); var_dump(TT::getParentHello()); var_dump(T::HELLO); var_dump(TT::HELLO); TT::getHelloConst(); // Notice: undefined var_dump($c->ewfiohoiwefh); // null //throw new Exception(); destructors won't run // fatal //var_dump((new T())->$hello); // works var_dump($c::$hello); var_dump($c3::$hello); // works (new T())->getHelloConst(); var_dump(TT::testConst()); // inherited // works, but E_STRICT T::test(); // can use null instead of TT $c->ca(null); // __PHP_Incomplete_class $zzz = unserialize('O:1:"A":0:{}'); var_dump($zzz); $cClone = clone $c; echo $cClone->getPrivate() . PHP_EOL; $c4 = clone $c3; $c3->modifyPrivate(); echo PHP_EOL;