Bug #60067 [Com]: Strange Recursive/interation
Edit report at https://bugs.php.net/bug.php?id=60067&edit=1 ID: 60067 Comment by: bigorangemachine at hotmail dot com Reported by:bigorangemachine at hotmail dot com Summary:Strange Recursive/interation Status: Open Type: Bug Package:Variables related Operating System: Linux CGI/FastCGI PHP Version:5.3.8 Block user comment: N Private report: N New Comment: FROM (corrected): if(@in_array($k,$exclude_keys,true)){ if($_type=='object'){ if(!basic_check($omit_str)){unset($obj->{$k});} else{$obj->{$k}=$omit_str;} }else if($_type=='array'){ if(!basic_check($omit_str)){unset($obj[$k]);} else{$obj[$k]=$omit_str;} } }else{ if(gettype($v)=='object' && ($v instanceof Traversable)){// log_clean($obj->{$k},$exclude_keys,$omit_str);} else if(gettype($v)=='array'){ log_clean($obj[$k],$exclude_keys,$omit_str);} } TO (shortened): if(@in_array($k,$exclude_keys,true)){ if(!basic_check($omit_str)){unset($v);} else{$v=$omit_str;} }else{ log_clean($v,$exclude_keys,$omit_str); } I changed using $obj[$k] ( and $obj->{$k} [sorry for the syntax error]) to just using $v in the function log_clean(). This is my first bug report. Sorry if I don't have the format correct. Previous Comments: [2011-10-16 01:15:57] anonymous at anonymous dot anonymous Needs an SSCCE: http://sscce.org/ -------------------- [2011-10-15 19:39:27] bigorangemachine at hotmail dot com Description: I wrote an OOP PHP class to interact with an Shipping estimate API. I setup a logging system to help log & track any issues during testing. The goal was to have this logging system remove certain index keys for both 'objects' and 'arrays' in a recursive manor. I believe that the passed-reference (variable using with an ampersand or what I call a 'live link') is being 'pushed' up. When I check the logged xml (in the example) it often read 'omitted'. The variable was being changed even though the original call to function wasn't done using a passed-reference. The function would work correctly with the corrected code or the log_xml calls completed first. Maybe using $v is what broke the pass reference and it was just a 'copy' after that. Test script: --- Code Sample Here http://pastebin.com/GcZMkD6B -- Edit this bug report at https://bugs.php.net/bug.php?id=60067&edit=1
[PHP-BUG] Bug #60067 [NEW]: Strange Recursive/interation
From: Operating system: Linux CGI/FastCGI PHP version: 5.3.8 Package: Variables related Bug Type: Bug Bug description:Strange Recursive/interation Description: I wrote an OOP PHP class to interact with an Shipping estimate API. I setup a logging system to help log & track any issues during testing. The goal was to have this logging system remove certain index keys for both 'objects' and 'arrays' in a recursive manor. I believe that the passed-reference (variable using with an ampersand or what I call a 'live link') is being 'pushed' up. When I check the logged xml (in the example) it often read 'omitted'. The variable was being changed even though the original call to function wasn't done using a passed-reference. The function would work correctly with the corrected code or the log_xml calls completed first. Maybe using $v is what broke the pass reference and it was just a 'copy' after that. Test script: --- Code Sample Here http://pastebin.com/GcZMkD6B -- Edit bug report at https://bugs.php.net/bug.php?id=60067&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=60067&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=60067&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=60067&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=60067&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=60067&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=60067&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=60067&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=60067&r=needscript Try newer version: https://bugs.php.net/fix.php?id=60067&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=60067&r=support Expected behavior: https://bugs.php.net/fix.php?id=60067&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=60067&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=60067&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=60067&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=60067&r=php4 Daylight Savings:https://bugs.php.net/fix.php?id=60067&r=dst IIS Stability: https://bugs.php.net/fix.php?id=60067&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=60067&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=60067&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=60067&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=60067&r=mysqlcfg