nicholsr                Wed May 27 22:34:25 2009 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/tests/lang returnByReference.002.phpt 
                        returnByReference.006.phpt 
                        returnByReference.008.phpt 
                        returnByReference.003.phpt 
                        returnByReference.007.phpt 
                        returnByReference.004.phpt 
                        returnByReference.005.phpt 
                        returnByReference.001.phpt 
                        returnByReference.009.phpt 
  Log:
  Language Tests: returnByReference
  
http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.002.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.002.phpt
+++ php-src/tests/lang/returnByReference.002.phpt
--TEST--
Returning a reference from a function.
--FILE--
<?php
function &returnRef() {
                global $a;
                return $a;
}

function returnVal() {
                global $a;
                return $a;
}

$a = "original";
$b =& returnVal();
$b = "changed";
var_dump($a); //expecting warning + "original" 

$a = "original";
$b =& returnRef();
$b = "changed";
var_dump($a); //expecting "changed" 
?>
--EXPECTF--

Strict Standards: Only variables should be assigned by reference in %s on line 
13
unicode(8) "original"
unicode(7) "changed"


http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.006.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.006.phpt
+++ php-src/tests/lang/returnByReference.006.phpt
--TEST--
Returning a reference from a function via another function
--INI--
error_reporting = E_ALL & ~E_STRICT
--FILE--
<?php
function returnConstantByValue() {
        return 100;
}

function &returnConstantByRef() {
        return 100;
}

function &returnVariableByRef() {
        return $GLOBALS['a'];
}

function &returnFunctionCallByRef($functionToCall) {
        return $functionToCall();
}

echo "\n---> 1. Via a return by ref function call, assign by reference the 
return value of a function that returns by value:\n";
unset($a, $b);
$a = 4;
$b = &returnFunctionCallByRef('returnConstantByValue');
$a++;
var_dump($a, $b);

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";
unset($a, $b);
$a = 4;
$b = &returnFunctionCallByRef('returnConstantByRef');
$a++;
var_dump($a, $b);

echo "\n---> 3. Via a return by ref function call, assign by reference the 
return value of a function that returns by ref:\n";
unset($a, $b);
$a = 4;
$b = &returnFunctionCallByRef('returnVariableByRef');
$a++;
var_dump($a, $b);

?>
--EXPECTF--
---> 1. Via a return by ref function call, assign by reference the return value 
of a function that returns by value:

Notice: Only variable references should be returned by reference in %s on line 
15
int(5)
int(100)

---> 2. Via a return by ref function call, assign by reference the return value 
of a function that returns a constant by ref:

Notice: Only variable references should be returned by reference in %s on line 7
int(5)
int(100)

---> 3. Via a return by ref function call, assign by reference the return value 
of a function that returns by ref:
int(5)
int(5)

http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.008.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.008.phpt
+++ php-src/tests/lang/returnByReference.008.phpt
--TEST--
Returning a reference from a non-static method via another non-static method
--INI--
error_reporting = E_ALL & ~E_STRICT
--FILE--
<?php
class C {
        function returnConstantByValue() {
                return 100;
        }
        
        function &returnConstantByRef() {
                return 100;
        }
        
        function &returnVariableByRef() {
                return $GLOBALS['a'];
        }
        
        function &returnFunctionCallByRef($functionToCall) {
                return $this->$functionToCall();
        }
}
$c = new C;

echo "\n---> 1. Via a return by ref function call, assign by reference the 
return value of a function that returns by value:\n";
unset($a, $b);
$a = 4;
$b = &$c->returnFunctionCallByRef('returnConstantByValue');
$a++;
var_dump($a, $b);

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";
unset($a, $b);
$a = 4;
$b = &$c->returnFunctionCallByRef('returnConstantByRef');
$a++;
var_dump($a, $b);

echo "\n---> 3. Via a return by ref function call, assign by reference the 
return value of a function that returns by ref:\n";
unset($a, $b);
$a = 4;
$b = &$c->returnFunctionCallByRef('returnVariableByRef');
$a++;
var_dump($a, $b);

?>
--EXPECTF--

---> 1. Via a return by ref function call, assign by reference the return value 
of a function that returns by value:

Notice: Only variable references should be returned by reference in %s on line 
16
int(5)
int(100)

---> 2. Via a return by ref function call, assign by reference the return value 
of a function that returns a constant by ref:

Notice: Only variable references should be returned by reference in %s on line 8
int(5)
int(100)

---> 3. Via a return by ref function call, assign by reference the return value 
of a function that returns by ref:
int(5)
int(5)
http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.003.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.003.phpt
+++ php-src/tests/lang/returnByReference.003.phpt
--TEST--
Returning a reference from a function
--FILE--
<?php
function returnConstantByValue() {
        return 100;
}

function &returnConstantByRef() {
        return 100;
}

function &returnVariableByRef() {
        return $GLOBALS['a'];
}

echo "\n---> 1. Trying to assign by reference the return value of a function 
that returns by value:\n";
unset($a, $b);
$a = 4;
$b = &returnConstantByValue();
$a++;
var_dump($a, $b);

echo "\n---> 2. Trying to assign by reference the return value of a function 
that returns a constant by ref:\n";
unset($a, $b);
$a = 4;
$b = &returnConstantByRef();
$a++;
var_dump($a, $b);

echo "\n---> 3. Trying to assign by reference the return value of a function 
that returns by ref:\n";
unset($a, $b);
$a = 4;
$b = &returnVariableByRef();
$a++;
var_dump($a, $b);

?>
--EXPECTF--

---> 1. Trying to assign by reference the return value of a function that 
returns by value:

Strict Standards: Only variables should be assigned by reference in %s on line 
17
int(5)
int(100)

---> 2. Trying to assign by reference the return value of a function that 
returns a constant by ref:

Notice: Only variable references should be returned by reference in %s on line 7
int(5)
int(100)

---> 3. Trying to assign by reference the return value of a function that 
returns by ref:
int(5)
int(5)

http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.007.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.007.phpt
+++ php-src/tests/lang/returnByReference.007.phpt
--TEST--
Returning a reference from a static method via another static method
--INI--
error_reporting = E_ALL & ~E_STRICT
--FILE--
<?php
class C {
        static function returnConstantByValue() {
                return 100;
        }
        
        static function &returnConstantByRef() {
                return 100;
        }
        
        static function &returnVariableByRef() {
                return $GLOBALS['a'];
        }
        
        static function &returnFunctionCallByRef($functionToCall) {
                return C::$functionToCall();
        }
}

echo "\n---> 1. Via a return by ref function call, assign by reference the 
return value of a function that returns by value:\n";
unset($a, $b);
$a = 4;
$b = &C::returnFunctionCallByRef('returnConstantByValue');
$a++;
var_dump($a, $b);

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";
unset($a, $b);
$a = 4;
$b = &C::returnFunctionCallByRef('returnConstantByRef');
$a++;
var_dump($a, $b);

echo "\n---> 3. Via a return by ref function call, assign by reference the 
return value of a function that returns by ref:\n";
unset($a, $b);
$a = 4;
$b = &C::returnFunctionCallByRef('returnVariableByRef');
$a++;
var_dump($a, $b);

?>
--EXPECTF--

---> 1. Via a return by ref function call, assign by reference the return value 
of a function that returns by value:

Notice: Only variable references should be returned by reference in %s on line 
16
int(5)
int(100)

---> 2. Via a return by ref function call, assign by reference the return value 
of a function that returns a constant by ref:

Notice: Only variable references should be returned by reference in %s on line 8
int(5)
int(100)

---> 3. Via a return by ref function call, assign by reference the return value 
of a function that returns by ref:
int(5)
int(5)
http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.004.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.004.phpt
+++ php-src/tests/lang/returnByReference.004.phpt
--TEST--
Returning a reference from a static method
--FILE--
<?php
Class C {
        static function returnConstantByValue() {
                return 100;
        }

        static function &returnConstantByRef() {
                return 100;
        }
        
        static function &returnVariableByRef() {
                return $GLOBALS['a'];
        }
}

echo "\n---> 1. Trying to assign by reference the return value of a function 
that returns by value:\n";
unset($a, $b);
$a = 4;
$b = &C::returnConstantByValue();
$a++;
var_dump($a, $b);

echo "\n---> 2. Trying to assign by reference the return value of a function 
that returns a constant by ref:\n";
unset($a, $b);
$a = 4;
$b = &C::returnConstantByRef();
$a++;
var_dump($a, $b);

echo "\n---> 3. Trying to assign by reference the return value of a function 
that returns by ref:\n";
unset($a, $b);
$a = 4;
$b = &C::returnVariableByRef();
$a++;
var_dump($a, $b);

?>
--EXPECTF--

---> 1. Trying to assign by reference the return value of a function that 
returns by value:

Strict Standards: Only variables should be assigned by reference in %s on line 
19
int(5)
int(100)

---> 2. Trying to assign by reference the return value of a function that 
returns a constant by ref:

Notice: Only variable references should be returned by reference in %s on line 8
int(5)
int(100)

---> 3. Trying to assign by reference the return value of a function that 
returns by ref:
int(5)
int(5)

http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.005.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.005.phpt
+++ php-src/tests/lang/returnByReference.005.phpt
--TEST--
Returning a reference from a method
--FILE--
<?php
Class C {
        function returnConstantByValue() {
                return 100;
        }
        
        function &returnConstantByRef() {
                return 100;
        }
        
        static function &returnVariableByRef() {
                return $GLOBALS['a'];
        }
}
$c = new C;

echo "\n---> 1. Trying to assign by reference the return value of a function 
that returns by value:\n";
unset($a, $b);
$a = 4;
$b = &$c->returnConstantByValue();
$a++;
var_dump($a, $b);

echo "\n---> 2. Trying to assign by reference the return value of a function 
that returns a constant by ref:\n";
unset($a, $b);
$a = 4;
$b = &$c->returnConstantByRef();
$a++;
var_dump($a, $b);

echo "\n---> 3. Trying to assign by reference the return value of a function 
that returns by ref:\n";
unset($a, $b);
$a = 4;
$b = &$c->returnVariableByRef();
$a++;
var_dump($a, $b);

?>
--EXPECTF--

---> 1. Trying to assign by reference the return value of a function that 
returns by value:

Strict Standards: Only variables should be assigned by reference in %s on line 
20
int(5)
int(100)

---> 2. Trying to assign by reference the return value of a function that 
returns a constant by ref:

Notice: Only variable references should be returned by reference in %s on line 8
int(5)
int(100)

---> 3. Trying to assign by reference the return value of a function that 
returns by ref:
int(5)
int(5)

http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.001.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.001.phpt
+++ php-src/tests/lang/returnByReference.001.phpt
--TEST--
Returning a reference from a function
--FILE--
<?php

function &returnByRef(&$arg1)
{
        return $arg1;
}

$a = 7;
$b =& returnByRef($a);
var_dump($b);
$a++;
var_dump($b);

?>
--EXPECT--
int(7)
int(8)
http://cvs.php.net/viewvc.cgi/php-src/tests/lang/returnByReference.009.phpt?view=markup&rev=1.1
Index: php-src/tests/lang/returnByReference.009.phpt
+++ php-src/tests/lang/returnByReference.009.phpt
--TEST--
Returning a references returned by another function
--FILE--
<?php


function &returnVarByRef () {
    $b=1;
        return $b; 
}

function &testReturnVarByRef() {
        return returnVarByRef();
}

function returnVal () {
return 1; 
}

function &testReturnValByRef() {
        return returnVal();
}

echo "\n---> 1. Return a variable by reference -> No warning:\n";

var_dump (testReturnVarByRef());

echo "\n---> 2. Return a value by reference -> Warning:\n";

var_dump (testReturnValByRef());

--EXPECTF--
---> 1. Return a variable by reference -> No warning:
int(1)

---> 2. Return a value by reference -> Warning:

Notice: Only variable references should be returned by reference in %s on line 
%d
int(1)

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to