Construit un nouveau moteur xoshiro256**

# Random\Engine\Xoshiro256StarStar::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__construct — Construit un nouveau moteur xoshiro256**

### Description

public function Random\Engine\Xoshiro256StarStar::__construct(string|int|null `$seed` = `null`)

### Liste de paramètres

`seed`

  Les 256 bits (32 octets) internes de l'état, composés de quatre entiers non signés de 64 bits, sont initialisés en fonction du type utilisé comme `seed`.

  Type | Description
  --- | ---
  null | Remplit l'état avec 32 octets aléatoires générés à l'aide du CSPRNG.
  int | Remplit l'état avec quatre valeurs consécutives générées avec l'algorithme SplitMix64 qui a été initialisé avec `seed` interprété comme un entier non signé de 64 bits.
  string | Remplit l'état en interprétant une chaîne de 32 octets string comme quatre entiers non signés de 64 bits en little-endian.

### Erreurs / Exceptions

- Si la longueur d'une string `seed` n'est pas de 32 octets, une ValueError sera lancée.
- Si une string `seed` est composée de 32 octets NUL (`"\x00"`), une ValueError sera lancée.

### Exemples

Exemple #1 Exemple de Random\Engine\Xoshiro256StarStar::__construct()

    <?php
    // Utilise une graine aléatoire de 256 bits.
    $e = new \Random\Engine\Xoshiro256StarStar();

    $r = new \Random\Randomizer($e);
    ?>

Exemple #2 Dériver une graine d'une chaîne de caractères

    <?php
    $string = "My string seed";

    // Hacher la chaîne avec SHA-256 en utilisant une sortie binaire pour transformer
    // la chaîne en une graine de 256 bits. Utiliser la même chaîne donnera
    // la même séquence de données aléatoires.
    $e = new \Random\Engine\Xoshiro256StarStar(
        hash('sha256', $string, binary: true)
    );

    echo bin2hex($e->generate()), "\n";
    ?>

L'exemple ci-dessus va afficher :

    6e013453678388c2

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open