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, 5 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>