php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #36948 assigment operator and calling function with by ref variable
Submitted: 2006-04-02 14:12 UTC Modified: 2006-04-02 14:22 UTC
From: piotrek at salaciak dot net Assigned:
Status: Not a bug Package: Variables related
PHP Version: 5.1.2 OS: win 2003 + iis 6
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: piotrek at salaciak dot net
New email:
PHP Version: OS:

 

 [2006-04-02 14:12 UTC] piotrek at salaciak dot net
Description:
------------
I've made a block plugin for smarty templates library, it's working fine on PHP 5.1.1 and earlier, but not on 5.1.2. The reproduce code is just minimized to show how it works and how should it work.

Reproduce code:
---------------
$a = true;
while($a){
     fun1($a = false);
}

// ---------------------
$iterator = 0;
function fun1(&$repeat){
     global $iterator;
     if ($iterator > 10)
          $repeat = true;
     iterator++;
}

changing code of while to making it work as expected:
$a = true;
while($a){
     $a = false
     fun1($a);
}

Expected result:
----------------
more than 1 iteration should be executed, 

Actual result:
--------------
while executed once.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-04-02 14:22 UTC] tony2001@php.net
Turn on E_STRICT error messages and you'll see expected errors.
($a = false) is an expression and can't be passed by reference.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Oct 18 02:01:27 2024 UTC