Annotation of embedaddon/php/tests/lang/returnByReference.008.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Returning a reference from a non-static method via another non-static method
! 3: --INI--
! 4: error_reporting = E_ALL & ~E_STRICT
! 5: --FILE--
! 6: <?php
! 7: class C {
! 8: function returnConstantByValue() {
! 9: return 100;
! 10: }
! 11:
! 12: function &returnConstantByRef() {
! 13: return 100;
! 14: }
! 15:
! 16: function &returnVariableByRef() {
! 17: return $GLOBALS['a'];
! 18: }
! 19:
! 20: function &returnFunctionCallByRef($functionToCall) {
! 21: return $this->$functionToCall();
! 22: }
! 23: }
! 24: $c = new C;
! 25:
! 26: echo "\n---> 1. Via a return by ref function call, assign by reference the return value of a function that returns by value:\n";
! 27: unset($a, $b);
! 28: $a = 4;
! 29: $b = &$c->returnFunctionCallByRef('returnConstantByValue');
! 30: $a++;
! 31: var_dump($a, $b);
! 32:
! 33: echo "\n---> 2. Via a return by ref function call, assign by reference the return value of a function that returns a constant by ref:\n";
! 34: unset($a, $b);
! 35: $a = 4;
! 36: $b = &$c->returnFunctionCallByRef('returnConstantByRef');
! 37: $a++;
! 38: var_dump($a, $b);
! 39:
! 40: echo "\n---> 3. Via a return by ref function call, assign by reference the return value of a function that returns by ref:\n";
! 41: unset($a, $b);
! 42: $a = 4;
! 43: $b = &$c->returnFunctionCallByRef('returnVariableByRef');
! 44: $a++;
! 45: var_dump($a, $b);
! 46:
! 47: ?>
! 48: --EXPECTF--
! 49:
! 50: ---> 1. Via a return by ref function call, assign by reference the return value of a function that returns by value:
! 51:
! 52: Notice: Only variable references should be returned by reference in %s on line 16
! 53: int(5)
! 54: int(100)
! 55:
! 56: ---> 2. Via a return by ref function call, assign by reference the return value of a function that returns a constant by ref:
! 57:
! 58: Notice: Only variable references should be returned by reference in %s on line 8
! 59: int(5)
! 60: int(100)
! 61:
! 62: ---> 3. Via a return by ref function call, assign by reference the return value of a function that returns by ref:
! 63: int(5)
! 64: int(5)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>