ID: 29018
Updated by: [EMAIL PROTECTED]
Reported By: none at space dot com
-Status: Open
+Status: Feedback
Bug Type: Documentation problem
Operating System: any
PHP Version: 4.3.6
New Comment:
Possible solution:
function foo (& $var){
if (is_null($var)){return 0};
return(1);
}
$somevar = null;
foo($somevar);
Possible workarounds:
allow_call_time_pass_reference can be set on per directory basis.
@ can be added before function call (with side-effect of not displaying
any errors of course)
There's no other solution AFAIK.
Previous Comments:
------------------------------------------------------------------------
[2004-07-19 14:24:07] jsabre at jjsbr dot tv
I was wondering about this too... how can you deprecate this and not
tell the community what is going on? I found only very little info
about this issue out there. But meny people seem to truggle with it.
------------------------------------------------------------------------
[2004-07-07 11:57:57] jform at helmsdeep dot org
above: sorry, typo:
function foo ($obj){
should obviously be
function myfunc ($obj){
i was copying...
------------------------------------------------------------------------
[2004-07-07 11:55:42] jform at helmsdeep dot org
I agree totally! We used to be able to do the following:
myfunc(& $someobj); #and
myfunc(''); #this, if nothing passed
function foo ($obj){
if(is_null($obj)){...};
...
}
At this point we have to pre-check everything and do some massive
recoding! What is an easy solution for this or waht were you thinking
when chaning this? How do I pass 'nothing' now?
------------------------------------------------------------------------
[2004-07-05 19:07:17] none at space dot com
Description:
------------
proper reference documentation missing on how to switch from 'call-time
call-by-reference' to 'call-by-reference'.
with more and more ISP's upgrading php from versions prior the
deprecated 'call-time call-by-reference' to newer versions, more and
more people get utterly frustrated searching solutions to fix their
codes or libs for the two situations below.
especially passing 'no object' or null to a class has become critical
and there is no clear statement in the documentation of (references
explained) on what logic the guys that deprecated the the 'call-time'
functionality had in mind to compensate for that lack of
functionality.
i think it's about time you post the concept and solution of this
change somewhere prominently.
Reproduce code:
---------------
function foo (& $var){
if (is_null($var)){return 0};
return(1);
}
#call now
foo($somevar); #will work
foo(''); #will not work (how to do this properly?)
foo(1); #will not work (obviously)
Expected result:
----------------
>1
>0
>0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=29018&edit=1