For Programmers: Free Programming Magazines  


Home > Archive > PHP Documentation > January 2006 > #36154 [Bgs->Opn]: strange array cursor behavior during array assignment









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author #36154 [Bgs->Opn]: strange array cursor behavior during array assignment
dmitriy dot buldakov at etadirect dot com

2006-01-25, 7:56 am

ID: 36154
User updated by: dmitriy dot buldakov at etadirect dot com
Reported By: dmitriy dot buldakov at etadirect dot com
-Status: Bogus
+Status: Open
-Bug Type: Scripting Engine problem
+Bug Type: Documentation problem
Operating System: FreeBSD 5.3
PHP Version: 4.4.2
New Comment:

Dear Sniper.
I checked documentaion twice before the first reporting.
So, I checked triply before this mail.

There are no any phrase "cursor" or "pointer" on
http://www.php.net/manual/en/language.types.array.php and
http://www.php.net/manual/ru/language.types.array.php.
And there is only one prase about "array assignment" -
"You should be aware that array assignment always involves
value copying. You need to use the reference operator to
copy an array by reference"

Also, there are no any phrase about cursor (or pointer)
behavior in case of array assignment on
http://www.php.net/manual/en/ref.array.php and on reset,
end, next, prev, current, pos, key, each functions
description pages.

Perhaps I am not skilled in text reading, but I am sure
that the "not a bug" dose not described in a sensible
section of the manual.

Please check also.


Previous Comments:
------------------------------------------------------------------------

[2006-01-25 10:46:36] sniper@php.net

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php



------------------------------------------------------------------------

[2006-01-25 10:18:14] dmitriy dot buldakov at etadirect dot com

Description:
------------
In case of assignment to a variable another variable that contains an
array with positioned cursor the old array loses cursor position but
array in new variable cathes it.

I think - the initial array ($a) cursor should be untouched.
The copied array ($c) cursor can be copied or reset, but its behavior
should be documented.

Reproduce code:
---------------
<?php

$a = array(1,2,3,4,5,6,7);

$b = $a;

next($a);

print 'next($a); ...'."\n";
print ' current($a) = '.current($a)."\n";
print ' current($b) = '.current($b)."\n";

$c = $a;

print '$c = $a; ...'."\n";
print ' current($a) = '.current($a)."\n";
print ' current($b) = '.current($b)."\n";
print ' current($c) = '.current($c)."\n";

?>

Expected result:
----------------
bash-3.00# php test.php
next($a); ...
current($a) = 2
current($b) = 1
$c = $a; ...
current($a) = 2
current($b) = 1
current($c) = 1
bash-3.00#

or

bash-3.00# php test.php
next($a); ...
current($a) = 2
current($b) = 1
$c = $a; ...
current($a) = 2
current($b) = 1
current($c) = 2
bash-3.00#



Actual result:
--------------
bash-3.00# php test.php
next($a); ...
current($a) = 2
current($b) = 1
$c = $a; ...
current($a) = 1
current($b) = 1
current($c) = 2
bash-3.00#



------------------------------------------------------------------------


--
Edit this bug report at http://bugs.php.net/?id=36154&edit=1
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com