function return references to nothing

From: Date: Thu, 25 Feb 2016 21:35:38 +0000
Subject: function return references to nothing
Groups: php.general 
Request: Send a blank email to php-general+get-325419@lists.php.net to get a copy of this message
Hi! Why function can't return references to nothing? In some cases wound be useful return nothing. Here I want show example of code which implements search leaf in tree and if no found path then return nothing and this correctly works. #!/usr/bin/php <?php function &getmultivalue(&$arr, $keys) { //Begin from root $value = &$arr; for ($i = 0; $i < count($keys); $i++) { //if not found if(!isset($value[$keys[$i]])) return; //Next leaf $value = &$value[$keys[$i]]; } return $value; } $tree = ['aaa'=>['bbb'=>['ccc'=>'ddd']]]; print_r($tree); $found = &getmultivalue($tree, ['aaa', 'bbb', 'ccc']); if(isset($found)) { $found = 'zzz'; } $found = &getmultivalue($tree, ['aaa', 'bbb', 'ddd']); if(isset($found)) { $found = '---'; } print_r($tree); ?> ======================= $ ./example.php Array ( [aaa] => Array ( [bbb] => Array ( [ccc] => ddd ) ) ) PHP Notice: Only variable references should be returned by reference in /home/mikhail/example.php on line 8 Array ( [aaa] => Array ( [bbb] => Array ( [ccc] => zzz ) ) ) Work as expected but I really do not like Notice "Only variable references should be returned by reference" which said that is my code is ugly. Can you suggest alternative solution or may be remove this notice in this case. Of course I am agree that impossible return constants, but i think nothing we could return. function &getValue() { return 'value'; // this is not right. } but function &getValue() { return; // this is right. } What do you think? Sorry if I did write to wrong mailing list. I would like that it read peoples who develop PHP standards. -- Best Regards, Mike Gavrilov.

« previous php.general (#325419) next »