/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/classes/__call_006.phpt
75 строк
2 KB
Nikita Popov
Reindent phpt files
04 фев 2020, 00:52
04 фев 2020, 00:52
f8d7958
Код
Авторство
О чём код?
--TEST-- Ensure exceptions are handled properly when thrown in __call. --FILE-- <?php class A { function __call($strMethod, $arrArgs) { var_dump($this); throw new Exception; echo "You should not see this"; } function test() { A::unknownCalledWithSRO(1,2,3); } } class B extends A { function test() { B::unknownCalledWithSROFromChild(1,2,3); } } $a = new A(); echo "---> 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"; } ?> --EXPECTF-- ---> Invoke __call via simple method call. object(A)#%d (0) { } Exception caught OK; continuing. ---> Invoke __call via scope resolution operator within instance. object(A)#%d (0) { } Exception caught OK; continuing. ---> Invoke __call via scope resolution operator within child instance. object(B)#%d (0) { } Exception caught OK; continuing. ---> Invoke __call via callback. object(B)#%d (0) { } Exception caught OK; continuing.