php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #25690 call_user_func_array disrespect returned references
Submitted: 2003-09-29 09:29 UTC Modified: 2003-09-29 20:58 UTC
From: ask-me at ask-me dot ru Assigned:
Status: Not a bug Package: Scripting Engine problem
PHP Version: 4.3.3 OS: All
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: ask-me at ask-me dot ru
New email:
PHP Version: OS:

 

 [2003-09-29 09:29 UTC] ask-me at ask-me dot ru
Description:
------------
Unfortunatly even in version 4.3.3 there was an bug with "call_user_func_array" function. 

call_user_func and call_user_func do respect functions that return
references.  That is, function foo that returns a references to an
object, does not return a reference to an object when foo is called via
call_user_func.  Instead, foo called via call_user_func returns a "copy"
of the object.  (I'm not sure "copy" is the right word.)  See the code
example for a concise example of the problem.

Reproduce code:
---------------
	function &testfunction()
	{
		global $testglobal;

		return ($testglobal=1);
	}

	$testglobal_link=&call_user_func_array("testfunction",array('testparam-1','testparam-2'));
	// $testglobal_link must be link to $testglobal at this stage
	print $testglobal_link;
	// trying to assign new value to $testglobal thru link
	$testglobal_link=2;
	// in theory we will get "2" as result
	print $testglobal;
	// but unfortunatly we will have "1" as result
	print $testglobal_link;


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-09-29 20:58 UTC] sniper@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

..

 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Wed Jul 02 19:01:36 2025 UTC