RE: [PHP] Passing by reference deprecated?

From: Date: Fri, 30 Mar 2001 09:51:59 +0000
Subject: RE: [PHP] Passing by reference deprecated?
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-46281@lists.php.net to get a copy of this message
I'm surprised. I would have thought that it would have been the other way around. Passing by reference should have similar implications to reference counting as used the Zend engine. It means that physical memory does not have to be allocated to passed variables (thereby saving resources in physical memory and time used in allocating and copying memory). In fact, because the Zend engine uses reference counting it will in effect use pass by reference for all parameters. In the case of a parameter passed as 'non-reference' it will only be allocated its own memory at a time that the parameter value is changed within the function. You can see a detailed explanation of how reference counting works here: http://www.zend.com/zend/art/ref-count.php I am not familiar with the parser source, so these are purely my thoughts on my understanding of the parser behaviour. I'd be interested to hear of other peoples views. -----Original Message----- From: Yasuo Ohgaki [mailto:yohgaki@hotmail.com] Sent: 30 March 2001 10:08 To: php-general@lists.php.net Subject: Re: [PHP] Passing by reference deprecated? FYI Unless you need to modify and return modified contents of variables, pass by reference makes script execution a little slower under PHP4. -- Yasuo Ohgaki ""Neil Kimber"" <neil.kimber@flytxt.com> wrote in message news:OAEEKIKEIHKOPGHNDHJJIEJACOAA.neil.kimber@flytxt.com... > Pass by reference itself is not deprecated, just call-time > pass-by-reference. > I believe this means your calling line of code being prevented from > specifying that it should be invoked as pass-by-reference. > > So, > > > function NormalPassByRefence(&$prmValue) > { > $prmValue ++; > } > > $numValue=1; > NormalPassByRefence($numValue); // This will still work > // $numValue =2 at this point > > > function CallTimePassByRefence($prmValue) > { > $prmValue ++; > } > > $numValue=1; > CallTimePassByRefence(&$numValue); // This will no longer work - it's been > deprecated > // $numValue =1 at this point > > > > > -----Original Message----- > From: CC Zona [mailto:cczona@nospam.invalid] > Sent: 30 March 2001 04:40 > To: php-general@lists.php.net > Subject: [PHP] Passing by reference deprecated? > > > set_value(&$variable,$value) > { > $variable=value; > } > > "Warning: Call-time pass-by-reference has been deprecated - argument passed > by value; If you would like to pass it by reference, modify the declaration > of [runtime function name](). If you would like to enable call-time > pass-by-reference, you can set allow_call_time_pass_reference to true in > your INI file. However, future versions may not support this any longer. " > > When did passing by reference get deprecated? The documentation at > <http://php.net/manual/en/language.references.pass.php> > doesn't suggest > what to do instead--in fact, it uses an example like the syntax above. So > my next question is: would using a return value or declaring a global be > the (only) other options? > > TIA > > -- > CC > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net > For additional commands, e-mail: php-general-help@lists.php.net > To contact the list administrators, e-mail: php-list-admin@lists.php.net > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net > For additional commands, e-mail: php-general-help@lists.php.net > To contact the list administrators, e-mail: php-list-admin@lists.php.net > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net For additional commands, e-mail: php-general-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net

« previous php.general (#46281) next »