(PHP 8 >= 8.2.0)
Random\Engine\Xoshiro256StarStar::__construct — Constrói um novo mecanismo xoshiro256**
Esta função não está documentada; apenas a lista de argumentos está disponível.
seed
A forma como o estado interno de 256 bits (32 bytes) composto por quatro inteiros de 64 bits sem sinal é
semeado depende do tipo usado como seed
.
Type | Descrição |
---|---|
null | Preenche o estado com 32 bytes aleatórios gerados usando o CSPRNG. |
int |
Preenche o estado com quatro valores consecutivos gerados com o algoritmo SplitMix64
que foi semeado com seed interpretado como um inteiro de 64 bits sem sinal.
|
string | Preenche o estado interpretando uma string de 32 bytes como quatro inteiros little-endian sem sinal de 64 bits. |
seed
não for
32 bytes, um ValueError será gerado.
seed
consistir em
32 bytes NUL ("\x00"
), um ValueError
será gerado.
Exemplo #1 Exemplo de Random\Engine\Xoshiro256StarStar::__construct()
<?php
// Usa uma semente de 256 bits aleatória.
$e = new \Random\Engine\Xoshiro256StarStar();
$r = new \Random\Randomizer($e);
?>
Exemplo #2 Derivando uma semente de uma string
<?php
$string = "My string seed";
// Faça o hash da string com SHA-256 usando a saída binária para transformar a
// $string em uma semente de 256 bits. Usar a mesma string resultará
// na mesma sequência de aleatoriedade.
$e = new \Random\Engine\Xoshiro256StarStar(
hash('sha256', $string, binary: true)
);
echo bin2hex($e->generate()), "\n";
?>
O exemplo acima produzirá:
6e013453678388c2