ID:               31360
 User updated by:  tokimeki at 1111 dot com dot tw
 Reported By:      tokimeki at 1111 dot com dot tw
 Status:           Bogus
 Bug Type:         Arrays related
 Operating System: FreeBSD / Windows XP
 PHP Version:      5.0.3
 New Comment:

I find a solution.
use this function to replace array copy.
ex: $test = clone($arr); // replace $test = $arr;

function & clone(&$var) {
        return $var;
}


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

[2004-12-31 06:03:49] tokimeki at 1111 dot com dot tw

I'm sorry! I already find the problem.
That is the serialize function which can't serialize a recursive
array~~~

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

[2004-12-31 04:34:52] tokimeki at 1111 dot com dot tw

I already change the setting (memory_limit = 128M) in php.ini, But it
has the same error.
I think that: $arr is a recursive array, so the operation maybe have
some different!
Notice that, if I remark line 29, and call sohw_var twice, it's ok! So,
this is a error.
Could you tell me, how many memory is enogth?
Thank you!

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

[2004-12-31 03:41:11] [EMAIL PROTECTED]

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

Increase the memory limit, in your code you end up duplicating lot's of
data which causes this limit to be reached.

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

[2004-12-31 02:40:09] tokimeki at 1111 dot com dot tw

Description:
------------
look the two source, index.php and debug.php.
At index.php (line 29), after array copy, and call show_var to show
$arr or $test, I get a error.


Reproduce code:
---------------
http://timteam.org/?TIM=FORUM&FORUM=1&ShowDocument=12961#TIM12961

Expected result:
----------------
ok
(array) = {
        obj (object) = {}
        str (string) = str
        arr (array) = {}
        number (integer) = 100
        bool (boolean) = 1
        null (NULL) = 
        test (array) = {
                AAA (string) = 000
                BBB (array) = {
                        zzz (string) = Z
                        xxx (array) = {
                                zzz (string) = Z
                                xxx (array) -> (@[test][BBB][xxx])
                        }
                        yyy (array) = {
                                www (array) -> (@[test][BBB])
                                vvv (array) -> (@[test][BBB])
                        }
                }
                CCC (array) -> (@)
                DDD (string) = ABC
                EEE (array) -> (@[test][BBB][yyy])
                FFF (array) -> (@[test][BBB])
                <>[EMAIL PROTECTED]&*()_+|~`\:;,.? (array) = {
                        TEST (string) = <>[EMAIL PROTECTED]&*()_+|~`\:;,.?
                }
                  (array) -> (@[test][<>[EMAIL PROTECTED]&*()_+|~`\:;,.?])
        }
}



Actual result:
--------------
ok
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to
allocate 128 bytes) in /home/tokimeki/public_html/test/debug.php on
line 29


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


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

Reply via email to