File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
tests /
lang /
returnByReference.007.phpt
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 6 months ago) by
misho
Branches:
php,
MAIN
CVS tags:
v5_4_3elwix,
v5_4_29p0,
v5_4_29,
v5_4_20p0,
v5_4_20,
v5_4_17p0,
v5_4_17,
v5_3_10,
HEAD
php
1: --TEST--
2: Returning a reference from a static method via another static method
3: --INI--
4: error_reporting = E_ALL & ~E_STRICT
5: --FILE--
6: <?php
7: class C {
8: static function returnConstantByValue() {
9: return 100;
10: }
11:
12: static function &returnConstantByRef() {
13: return 100;
14: }
15:
16: static function &returnVariableByRef() {
17: return $GLOBALS['a'];
18: }
19:
20: static function &returnFunctionCallByRef($functionToCall) {
21: return C::$functionToCall();
22: }
23: }
24:
25: echo "\n---> 1. Via a return by ref function call, assign by reference the return value of a function that returns by value:\n";
26: unset($a, $b);
27: $a = 4;
28: $b = &C::returnFunctionCallByRef('returnConstantByValue');
29: $a++;
30: var_dump($a, $b);
31:
32: 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";
33: unset($a, $b);
34: $a = 4;
35: $b = &C::returnFunctionCallByRef('returnConstantByRef');
36: $a++;
37: var_dump($a, $b);
38:
39: echo "\n---> 3. Via a return by ref function call, assign by reference the return value of a function that returns by ref:\n";
40: unset($a, $b);
41: $a = 4;
42: $b = &C::returnFunctionCallByRef('returnVariableByRef');
43: $a++;
44: var_dump($a, $b);
45:
46: ?>
47: --EXPECTF--
48:
49: ---> 1. Via a return by ref function call, assign by reference the return value of a function that returns by value:
50:
51: Notice: Only variable references should be returned by reference in %s on line 16
52: int(5)
53: int(100)
54:
55: ---> 2. Via a return by ref function call, assign by reference the return value of a function that returns a constant by ref:
56:
57: Notice: Only variable references should be returned by reference in %s on line 8
58: int(5)
59: int(100)
60:
61: ---> 3. Via a return by ref function call, assign by reference the return value of a function that returns by ref:
62: int(5)
63: int(5)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>