Return to bug24658.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / lang |
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