#34009 [Opn->Fbk]: PHP 4.4.0 shows on some platforms a return by reference Notice,but it shouldn't
| From: | tony2001@php.net | Date: | Fri, 05 Aug 2005 18:08:33 +0000 |
| Subject: | #34009 [Opn->Fbk]: PHP 4.4.0 shows on some platforms a return by reference Notice,but it shouldn't | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-83047@lists.php.net to get a copy of this message | ||
ID: 34009
Updated by: tony2001@php.net
Reported By: ast at gmx dot ch
-Status: Open
+Status: Feedback
Bug Type: Scripting Engine problem
Operating System: Gentoo Linux
PHP Version: 4.4.0
New Comment:
Please try CVS snapshot first (I've given the link to it).
I have no idea how to look into something that is not reproducible, so
I'd appreciate if you give some guidelines (an account on a machine
would be fine).
Previous Comments:
------------------------------------------------------------------------
[2005-08-05 20:02:42] ast at gmx dot ch
That's my point. It doesn't work on all systems.
It works on two of my systems, both running PHP 4.4.0.
It doesn't work on 3 other systems I have access to test the reproduce
code.
I've listed the PHPinfo links and some systems specs of systems that
pass the test and systems that don't pass the test. All of them are
running PHP 4.4.0.
I'd really appreciate if you could look into the issue with your
indepth knowledge of PHP.
------------------------------------------------------------------------
[2005-08-05 19:56:47] tony2001@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
Works fine here.
------------------------------------------------------------------------
[2005-08-05 19:50:05] ast at gmx dot ch
Here's the reproduce code:
<?php
error_reporting(E_ALL);
if (version_compare(PHPVERSION(), '4.4.0') != 0) print "This reproduce
code is only for PHP 4.4.0";
$bar = new Bug();
$baz = $bar->foo();
class Bug {
var $_flag;
function Bug() {
$this->_flag = 0;
}
function &foo() {
if (!$this->_flag) {
$false = false;
return $false; /* this is line 18 */
}
$false = false;
return $false;
}
}
?>
Expected result:
----------------
no NOTICEs
Actual result:
--------------
Notice: Only variable references should be returned by reference in
reproduce.php on line 18
I've added the two other methods in the original reproduce code just to
show that very slight modifications of the code do not give a PHP
Notice.
And please remember that I can't reproduce it on all systems.
------------------------------------------------------------------------
[2005-08-05 19:39:34] tony2001@php.net
Please provide an exact reproduce code (the URL you've given contains a
lot of code snippets and I can't understand which one of them is the
reproduce case).
------------------------------------------------------------------------
[2005-08-05 18:01:08] ast at gmx dot ch
From the reproduce script:
Unexpected result oberserved on
- http://nl01.pcextreme.nl/phpinfo.php (PHP
4.4.0, Linux Linux i686)
- PHP 4.4.0 cgi hosted by Powweb.com, Apache/1.3.33 (Unix)
FrontPage/5.0.2.2635 mod_ssl/2.8.22 OpenSSL/0.9.7d PowWeb/1.1, FreeBSD
clust05-www01.powweb.com 4.11-RELEASE FreeBSD 4.11-RELEASE #0: Thu Ma
i386
- Gentoo linux, PHP 4.4.0, apache 2, x86:
http://dev.nei.ch/bugs/php440_notice_bug/phpinfo_gentoo_with_bug.html
Correct behavior observed on
- dozens / hundreds other servers, e.g.
- Windows XP SP 2, PHP 4.4.0 cgi, apache 2, x86
- Gentoo linux, PHP 4.4.0, apache 2, x86:
http://dev.nei.ch/bugs/php440_notice_bug/phpinfo_gentoo_without_bug.html
(this is another gentoo box, completely unrelated to the other)
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/34009
--
Edit this bug report at http://bugs.php.net/?id=34009&edit=1