From aab35b4632061eff302776a3222f7acfe17c5454 Mon Sep 17 00:00:00 2001 From: Louis-Arnaud Catoire Date: Tue, 24 Mar 2026 10:16:17 +0100 Subject: [PATCH] Add warning about Mt19937 global state in legacy random functions --- language-snippets.ent | 15 ++++++++++++++- reference/array/functions/array-rand.xml | 3 ++- reference/array/functions/shuffle.xml | 3 ++- reference/random/functions/mt-rand.xml | 3 ++- reference/random/functions/rand.xml | 3 ++- reference/strings/functions/str-shuffle.xml | 3 ++- 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/language-snippets.ent b/language-snippets.ent index 4bf3765c8f..8d65a705d5 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -1,5 +1,5 @@ - + @@ -39,6 +39,19 @@ de nombres aléatoires est initialisé automatiquement.'> '> + + + Cette fonction utilise l'instance globale Mt19937 ("Mersenne Twister") comme source d'aléatoire et partage ainsi son état avec toutes les autres fonctions utilisant le Mt19937 global. + L'utilisation de l'une de ces fonctions fait avancer la séquence pour toutes les autres fonctions, indépendamment de la portée. + + + Générer des séquences reproductibles en initialisant mt_srand ou srand avec une valeur connue produira également une sortie reproductible de cette fonction. + + + Il est préférable d'utiliser les méthodes de Random\Randomizer dans tout nouveau code. + +'> + Étant donné que le moteur Mt19937 ("Mersenne Twister") prend un seul entier de 32 bits en tant que diff --git a/reference/array/functions/array-rand.xml b/reference/array/functions/array-rand.xml index 532071ed66..b38fd5a66d 100644 --- a/reference/array/functions/array-rand.xml +++ b/reference/array/functions/array-rand.xml @@ -1,6 +1,6 @@ - + @@ -21,6 +21,7 @@ et retourne la ou les clés de ces valeurs. &caution.cryptographically-insecure; + &caution.mt19937-global-state; diff --git a/reference/array/functions/shuffle.xml b/reference/array/functions/shuffle.xml index e4201bc9d5..725e26000e 100644 --- a/reference/array/functions/shuffle.xml +++ b/reference/array/functions/shuffle.xml @@ -1,6 +1,6 @@ - + @@ -19,6 +19,7 @@ Mélange les éléments du tableau array. &caution.cryptographically-insecure; + &caution.mt19937-global-state; &reftitle.parameters; diff --git a/reference/random/functions/mt-rand.xml b/reference/random/functions/mt-rand.xml index 9e67f626a2..5b62bd4021 100644 --- a/reference/random/functions/mt-rand.xml +++ b/reference/random/functions/mt-rand.xml @@ -1,6 +1,6 @@ - + @@ -36,6 +36,7 @@ mt_rand(5,15). &caution.cryptographically-insecure; + &caution.mt19937-global-state; diff --git a/reference/random/functions/rand.xml b/reference/random/functions/rand.xml index 36e435ac55..1251497730 100644 --- a/reference/random/functions/rand.xml +++ b/reference/random/functions/rand.xml @@ -1,6 +1,6 @@ - + @@ -27,6 +27,7 @@ (inclus), par exemple, utiliser rand (5, 15). &caution.cryptographically-insecure; + &caution.mt19937-global-state; Avant PHP 7.1.0, getrandmax valait seulement 32767 sur certaines plateformes diff --git a/reference/strings/functions/str-shuffle.xml b/reference/strings/functions/str-shuffle.xml index 8e19791f11..736f4365e1 100755 --- a/reference/strings/functions/str-shuffle.xml +++ b/reference/strings/functions/str-shuffle.xml @@ -1,6 +1,6 @@ - + @@ -19,6 +19,7 @@ Une permutation parmi toutes celles possibles est créée. &caution.cryptographically-insecure; + &caution.mt19937-global-state;