// non-existant method, so no find self::m17(); // non-existant method, so no find static::m25(); // non-existant method, so no find self::m27(); // non-existant method, so no find return new static($msg->shift(), $msg->shift(), $msg->toArray()); } private function m25() { print __CLASS__ . "\n"; } private function m27() { print __CLASS__ . "\n"; } } $o = new a4(); a4::m1(); // fails a4::m2(); // fails a4::m3(); // fails a4::m4(); // OK (WOn't show) a4::m8(); // non existant a1::m9(); // non existant