Если вы просто хотите, чтобы между обоими вызовами функций было одинаковое случайное число в одном и том же экземпляре в том же запросе , тогда ваш код будет работать как есть.
Если вы просто хотите, чтобы между обоими вызовами функций было одинаковое случайное число в одном и том же экземпляре в различных запросах , вам необходимо использовать некоторую форму постоянного хранилища, например, Session или DB .
Если вы просто хотите, чтобы при каждом вызове функции разные экземпляры в одном и том же запросе совпадали случайным числом, то вам нужна переменная класса stati c .
class StaticRandom {
private static $rand = NULL;
public static function getRand() {
if( is_null(self::$rand) ) {
// this is also where you wouldput the session/DB bits if you
// want to persist across requests.
self::$rand = rand(pow(10, 4-1), pow(10, 4)-1);
}
return self::$rand;
}
public function instanceMethodOne() {
return self::getRand();
}
public function instanceMethodTwo() {
return self::getRand();
}
}
$a = new StaticRandom();
$b = new StaticRandom();
var_dump(
$a->instanceMethodOne(),
$b->instanceMethodTwo()
);
Вывод:
int(4188)
int(4188)