爲了測試和學習的目的,我想修改PHP 蘭特和mt_rand功能,這些功能在https://github.com/php/php-src:EXT /標準/ rand.c。修改PHP rand函數
我想給一個固定的輸出每次rand函數被調用,併爲此目的我修改了代碼
PHPAPI long php_rand(TSRMLS_D)
{
long ret;
if (!BG(rand_is_seeded)) {
php_srand(GENERATE_SEED() TSRMLS_CC);
}
#ifdef ZTS
ret = php_rand_r(&BG(rand_seed));
#else
# if defined(HAVE_RANDOM)
ret = random();
# elif defined(HAVE_LRAND48)
ret = lrand48();
# else
ret = rand();
# endif
#endif
// ignoring the results coming from the calls above and
// returning a constant value
ret = 3264;
return ret;
}
編譯
./configure
make
make install
最後稱爲rand函數作爲echo rand(3000,4000);
和它始終返回3000
。
修改此功能的方法是什麼?爲什麼有TSRMLS_D
但不是範圍參數?
這是一個c問題不是php的問題。 – 2012-11-19 18:47:16
@Dagon我錯過了,感謝您的糾正! – amertkara