<?php
// r() simply returns a reference to a given variable.
function &r(&$v){return $v;}
// Here, we have a scalar $a on which settype() fails to operate if
// parentheses are involved.
print "Scalar demonstration:\n";
$a = 1;
// First with parentheses, then without.
// v v
settype( ( r($a) ) , "boolean"); var_dump($a);
settype( r($a) , "boolean"); var_dump($a);
// ^ ^
Scalar demonstration:
Strict Standards: Only variables should be passed by reference in /in/RPGZO on line 14
int(1)
bool(true)
Output for 5.1.2 - 5.1.6, 5.2.0
Scalar demonstration:
Strict Standards: Only variables should be passed by reference in /in/RPGZO on line 14
int(1)
Strict Standards: Only variables should be passed by reference in /in/RPGZO on line 15
int(1)
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/RPGZO on line 16
Process exited with code 255.