Bug #60067 [Fbk->NoF]: Strange Recursive/interation

From: Date: Sun, 14 Jun 2015 04:22:21 +0000
Subject: Bug #60067 [Fbk->NoF]: Strange Recursive/interation
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-193442@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60067&edit=1

 ID:               60067
 Updated by:       php-bugs@lists.php.net
 Reported by:      bigorangemachine at hotmail dot com
 Summary:          Strange Recursive/interation
-Status:           Feedback
+Status:           No Feedback
 Type:             Bug
 Package:          Variables related
 Operating System: Linux CGI/FastCGI
 PHP Version:      5.3.8
 Assigned To:      cmb
 Private report:   N

 New Comment:

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.


Previous Comments:
------------------------------------------------------------------------
[2015-06-05 17:20:38] cmb@php.net

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.

To clarify: we do not need a script that works, but rather a script that allows us to reproduce the
bug – ideally by simply executing this script, what implies that the script is self-contained.

------------------------------------------------------------------------
[2011-10-16 02:12:24] bigorangemachine at hotmail dot com

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.

------------------------------------------------------------------------
[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


Thread (5 messages)

« previous php.bugs (#193442) next »