1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- --TEST--
- Bug #24658 (combo of typehint / reference causes crash)
- --FILE--
- <?php
- class foo {}
- function no_typehint($a) {
- var_dump($a);
- }
- function typehint(foo $a) {
- var_dump($a);
- }
- function no_typehint_ref(&$a) {
- var_dump($a);
- }
- function typehint_ref(foo &$a) {
- var_dump($a);
- }
- $v = new foo();
- $a = array(new foo(), 1, 2);
- no_typehint($v);
- typehint($v);
- no_typehint_ref($v);
- typehint_ref($v);
- echo "===no_typehint===\n";
- array_walk($a, 'no_typehint');
- echo "===no_typehint_ref===\n";
- array_walk($a, 'no_typehint_ref');
- echo "===typehint===\n";
- array_walk($a, 'typehint');
- echo "===typehint_ref===\n";
- array_walk($a, 'typehint_ref');
- ?>
- --EXPECTF--
- object(foo)#%d (0) {
- }
- object(foo)#%d (0) {
- }
- object(foo)#%d (0) {
- }
- object(foo)#%d (0) {
- }
- ===no_typehint===
- object(foo)#%d (0) {
- }
- int(1)
- int(2)
- ===no_typehint_ref===
- object(foo)#%d (0) {
- }
- int(1)
- int(2)
- ===typehint===
- object(foo)#%d (0) {
- }
- Catchable fatal error: Argument 1 passed to typehint() must be an instance of foo, integer given in %s on line %d
|