ID:               31453
 Updated by:       [EMAIL PROTECTED]
 Reported By:      cdturri at hotmail dot com
 Status:           Open
 Bug Type:         Arrays related
 Operating System: Windows 2000 Advanced Server SP4
 PHP Version:      5.0.3
 New Comment:

I can confirm this problem.

Maybe the problem is just when running in ZTS mode, as it uses a
different seed generator.

However I don't time to trace the problem now.


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

[2005-01-10 16:11:51] cdturri at hotmail dot com

OK guys,

I just had the chance to test it under Linux and PHP 5 and the bug does
NOT occur. Here are the headers to confirm product versions:

 3 Server: Apache/2.0.52 (Unix) mod_perl/1.99_17 Perl/v5.8.4
mod_ssl/2.0.52 Open
SSL/0.9.7d PHP/5.0.3 DAV/2

Could anyone from the Dev team be so kindly to test it under Windows?

Thanks,
Christian

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

[2005-01-10 14:41:14] [EMAIL PROTECTED]

I'm using Linux.. :)


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

[2005-01-10 11:21:46] cdturri at hotmail dot com

Hi Sniper,

I just tested it on a different Windows PC with a brand new install of
PHP using your CVS link. The bug stills occurs. HTTP headers to verify
versions:

 3 Server: Apache/2.0.52 (Win32) PHP/5.0.4-dev
 4 X-Powered-By: PHP/5.0.4-dev

I compared my PHP.ihi with the php.ini-recommended that came with the
CVS build. Several differences were found, however using
php.ini-recommended as my PHP.ini with no changes still produced the
bug. Are you using my test.php with the cache.ini I am using in my
sample? I have the impression that is related to the multidimension
array function. 

Regards,
Christian

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

[2005-01-10 02:20:25] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.0-win32-latest.zip

I can NOT reproduce this.


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

[2005-01-09 15:04:01] cdturri at hotmail dot com

Description:
------------
Hi guys,

array_rand() is not returning random values in my scripts. I am using a
multidimension array that is being loaded from an INI file with
@parse_ini_file(). Tested under Apache v2.0.52/PHP v5.0.3 on Windows
2000 Advanced Server and a CVS build (php5-win32-200501071130.zip)
under Windows as well. Bug appears on both. I don't have a Unix system
to test it under PHP 5 (shame on me!) but the problem does NOT occur
under Unix/Apache v 1.3.33/PHP v4.3.9. 

Calling srand() to seed the random number generator seems to fix the
problem but the PHP manual clearly says that:

"Note: As of PHP 4.2.0, there is no need to seed the random number
generator with srand() or mt_srand() as this is now done
automatically."
(http://ie2.php.net/manual/en/function.array-rand.php)

mt_rand(), rand() and mt_srand() also contain notes saying that seeding
is not required before calling them.

Found several related bugs, but this one mentions the same issue:

http://bugs.php.net/bug.php?id=26290

[17 Nov 2003 2:12pm CET] [EMAIL PROTECTED]
You forgot to call srand() to generate random key. Hence the lack of
random data.
[17 Nov 2003 2:25pm CET] [EMAIL PROTECTED]
Incorrect documentaion I'm afraid.

So, it is one or the other. Either the documentation is wrong or the
function is not properly calling seeding the random number generator.
Could anyone please have a look?

Thanks for looking at this bug.

Regards,
Christian

Reproduce code:
---------------
I am using this code to verify the bug:

<?php

$multiarray = @parse_ini_file('cache.ini',true);

for($i=0;$i<100;$i++){
        $rand_key = array_rand($multiarray);
    print $rand_key . '<br>';
        if ($i == 1) {
            $first_item = $rand_key;
        }
        if ($first_item == $rand_key) {
                echo '<br>';
    }
}
?>

You can see the bug at:

http://www.turribeach.com.ar/downloads/test.php

You can download the INI file I am using and the test.php from:

http://www.turribeach.com.ar/downloads/PHP_Test.zip

Expected result:
----------------
A random key from the INI file.

Actual result:
--------------
A key but that it is not random, it is a subset of the original key
array.


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


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

Reply via email to