Annotation of embedaddon/php/tests/lang/bug24658.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #24658 (combo of typehint / reference causes crash)
! 3: --FILE--
! 4: <?php
! 5: class foo {}
! 6: function no_typehint($a) {
! 7: var_dump($a);
! 8: }
! 9: function typehint(foo $a) {
! 10: var_dump($a);
! 11: }
! 12: function no_typehint_ref(&$a) {
! 13: var_dump($a);
! 14: }
! 15: function typehint_ref(foo &$a) {
! 16: var_dump($a);
! 17: }
! 18: $v = new foo();
! 19: $a = array(new foo(), 1, 2);
! 20: no_typehint($v);
! 21: typehint($v);
! 22: no_typehint_ref($v);
! 23: typehint_ref($v);
! 24: echo "===no_typehint===\n";
! 25: array_walk($a, 'no_typehint');
! 26: echo "===no_typehint_ref===\n";
! 27: array_walk($a, 'no_typehint_ref');
! 28: echo "===typehint===\n";
! 29: array_walk($a, 'typehint');
! 30: echo "===typehint_ref===\n";
! 31: array_walk($a, 'typehint_ref');
! 32: ?>
! 33: --EXPECTF--
! 34: object(foo)#%d (0) {
! 35: }
! 36: object(foo)#%d (0) {
! 37: }
! 38: object(foo)#%d (0) {
! 39: }
! 40: object(foo)#%d (0) {
! 41: }
! 42: ===no_typehint===
! 43: object(foo)#%d (0) {
! 44: }
! 45: int(1)
! 46: int(2)
! 47: ===no_typehint_ref===
! 48: object(foo)#%d (0) {
! 49: }
! 50: int(1)
! 51: int(2)
! 52: ===typehint===
! 53: object(foo)#%d (0) {
! 54: }
! 55:
! 56: Catchable fatal error: Argument 1 passed to typehint() must be an instance of foo, integer given in %s on line %d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>