--TEST-- Ensure exceptions are handled properly when thrown in a statically declared __call. --FILE-- Invoke __call via simple method call.\n"; try { $a->unknown(); } catch (Exception $e) { echo "Exception caught OK; continuing.\n"; } echo "\n\n---> Invoke __call via scope resolution operator within instance.\n"; try { $a->test(); } catch (Exception $e) { echo "Exception caught OK; continuing.\n"; } echo "\n\n---> Invoke __call via scope resolution operator within child instance.\n"; $b = new B(); try { $b->test(); } catch (Exception $e) { echo "Exception caught OK; continuing.\n"; } echo "\n\n---> Invoke __call via callback.\n"; try { call_user_func(array($b, 'unknownCallback'), 1,2,3); } catch (Exception $e) { echo "Exception caught OK; continuing.\n"; } ?> ==DONE== --EXPECTF-- Warning: The magic method __call() must have public visibility and cannot be static in %s on line 3 ---> Invoke __call via simple method call. NULL Exception caught OK; continuing. ---> Invoke __call via scope resolution operator within instance. NULL Exception caught OK; continuing. ---> Invoke __call via scope resolution operator within child instance. NULL Exception caught OK; continuing. ---> Invoke __call via callback. NULL Exception caught OK; continuing. ==DONE==