#24909 [Fbk->Opn]: rand function with range always returns low value of range
ID: 24909
User updated by: a0 at hush dot com
Reported By: a0 at hush dot com
-Status: Feedback
+Status: Open
Bug Type: Math related
Operating System: solaris 8
PHP Version: 4.3.2
New Comment:
thanks for the response.
i have downloaded 4.3.3RC2 and tried it.
first, i configured it using no args. after i compiled
it, the rand() function behaves as expected, even with
a range specified. this works.
i then configured it with --with-nsapi=/usr/local/iws41,
which is what we need to use the module with our
webserver. after i compiled it, the cli program now
returns a 0 whenever a range is specified to rand().
i have not really looked through the code, but i would
guess this has something to do with the fact that php
is built with -DZTS in the second scenario (a different
random function is used in rand.c when this is
defined).
Previous Comments:
------------------------------------------------------------------------
[2003-08-02 12:46:58] iliaa@php.net
I've asked a number of people to replicate the problem, however they
were unable to do so using latest PHP and Solaris 8 & 9. Please try the
latest snapshot of 4.3.3 and see if the problem persists.
------------------------------------------------------------------------
[2003-08-01 14:37:22] a0 at hush dot com
Description:
------------
when using the rand function with php 4.3.2 on solaris 8, it will
return a random value as expected if no range is specified. if a
range
is specified it will always return the low value of the range.
i'm building the module with -DZTS, and it is being loaded into
IWS4.1.
i've modified the code so it works by changing line 36 of
php_rand.h from
#if HAVE_LRAND48
to
#if (HAVE_LRAND48 && !sun)
so PHP_RAND_MAX will get a value of RAND_MAX.
Reproduce code:
---------------
<?
$r = rand();
echo "$r\n";
$r = rand(0, 100);
echo "$r\n";
?>
Expected result:
----------------
24384
0
(it will always return 0)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=24909&edit=1
Thread (10 messages)