ID:               20525
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Feedback
+Status:           No Feedback
 Bug Type:         Variables related
 Operating System: Windows 2000
 PHP Version:      4.2.3
 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 "Open". Thank you.




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

[2002-11-23 09:07:18] [EMAIL PROTECTED]

when the output is so self explainatory, I'd like to see how it is
produced, hence I have to go through your code. I won't do this, since
I am sure you can shorten that to 10-15 LOC. Also, I asked you twice to
read the docs on references[1] and you did not reply to that by no
means. The '&' operator works different in PHP than in C. Make, at
first, sure, the 'bug' is  due to this confusion, thank you.

[1] http://www.php.net/manual/en/language.references.php
Jan
P.S. I don't want to sound rude as well :)

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

[2002-11-22 10:55:59] [EMAIL PROTECTED]

Also, please look at output from bottom up.  This will make it easier
to understand what is happening.

If you want less output, just comment out the "print_test" functions.

I am included the last set of lines from the output and have noted the
differences between runs with ********

You will notice that in the proper code, the B_FIRST, B_SECOND and
B_THIRD objects are stored properly.

In the code using the & reference symbol, only the B_THIRD object is
stored.  It is stored three seperate times.

The proper result should be :

Test:
c_list Object
(
    [c_list] => Array
        (
            [0] => b Object
                (
                    [name] => A_First
                    [list_array] => Array
                        (
                            [0] => a Object
                                (
********                            [name] => B_First
                                    [order] => 1
                                )

                            [1] => a Object
                                (
********                            [name] => B_Second
                                    [order] => 2
                                )

                            [2] => a Object
                                (
********                            [name] => B_Third
                                    [order] => 3
                                )
 ))))


Output from BAD calls using the & reference symbol will look like
this:

c_list Object
(
    [c_list] => Array
        (
            [0] => b Object
                (
                    [name] => A_Second
                    [list_array] => Array
                        (
                            [0] => a Object
                                (
********                            [name] => B_Third 
                                    [order] => 3
                                )

                            [1] => a Object
                                (
********                            [name] => B_Third
                                    [order] => 3
                                )

                            [2] => a Object
                                (
********                            [name] => B_Third
                                    [order] => 3
                                )

                        ))))



Hope this discussion is alieviates some of your time crunch.

Thanks for those of us who depend on PHP for our businesses.

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

[2002-11-22 10:31:43] [EMAIL PROTECTED]

I don't want to sound rude, but just run the script as is and you will
see the problem.

This is about as short as I want to get the script so that you see the
problem in depth.

It will take you no amount of time to cut and paste the section into a
new doc and run it. The difference in output will be self explanatory.

So if you would,.....just run the script provided.

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

[2002-11-21 09:59:11] [EMAIL PROTECTED]

Hey,
I should have emphesized on 'short', currently I just don't have the
passion to go through that code in depth without you showing that you
have read the docs. And please come up with a short, self-contained,
easy to read and unterstand script, thanks a lot for your interest in
PHP!

--
Jan

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

[2002-11-21 09:46:28] [EMAIL PROTECTED]

Script was already included.

Just cut and paste the PHP code into a text editor and save.
Then run.

The script will cycle through and array, building objects out of the
array.  It dumps the values of the objects at certain steps.  You will
see the difference if you follow the instructions below.

Run Script once and look at output.  You will notice that the dump of
the B class will contain repeat elements (actually, it seems to contain
only the last element of the array that was visited).

Edit Script, deleting the & symbol where I have placed a comment
(***NOTE).
Run Script and look at output. You will see the output is as you would
expect.

Thanks.  If you need more info, you can go to my website
www.goldparrot.com and get my contact information to call me.

Thanks again.

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

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/20525

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

Reply via email to