# Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__construct — Constructs a new PCG Oneseq 128 XSL RR 64 engine

### Beschreibung

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

### Parameter-Liste

`seed`

  How the internal 128 bit (16 byte) state consisting of one unsigned 128 bit integer is seeded depends on the type used as the `seed`.

  Type | Beschreibung
  --- | ---
  null | Fills the state with 16 random bytes generated using the CSPRNG.
  int | Fills the state by setting the state to `0`, advancing the engine one step, adding the value of `seed` interpreted as an unsigned 64 bit integer, and advancing the engine another step.
  string | Fills the state by interpreting a 16 byte string as a little-endian unsigned 128 bit integer.

### Fehler/Exceptions

- If the length of a string `seed` is not 16 bytes, a ValueError will be thrown.

### Beispiele

Beispiel #1 Random\Engine\PcgOneseq128XslRr64::__construct() example

`<?php
// Uses a random 128 Bit seed.
$e = new \Random\Engine\PcgOneseq128XslRr64();
$r = new \Random\Randomizer($e);
?>`

Beispiel #2 Deriving a seed from a String

`<?php
$string = "My string seed";
// Hash the string with truncated SHA-256 using binary output
// to turn the $string into a 128 Bit seed. Using the same
// string will result in the same sequence of randomness.
$e = new \Random\Engine\PcgOneseq128XslRr64(
substr(hash('sha256', $string, binary: true), 0, 16)
);
echo bin2hex($e->generate()), "\n";
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    8333ef59315b16d8

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