Bonsoir,
je converti un programme javascript en php !!
voici le js ( oui je sais , il y a des var partout, mais ce n'est pas de moi !! ):
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 var seed = Date.now(); function valueOrDefault(value, defaultValue) { return typeof value === 'undefined' ? defaultValue : value; } function rand(min, max) { min = valueOrDefault(min, 0); max = valueOrDefault(max, 0); console.log(seed); seed = (seed * 9301 + 49297) % 233280; return min + (seed / 233280) * (max - min); } function numbers(config) { var cfg = config || {}; var min = valueOrDefault(cfg.min, 0); var max = valueOrDefault(cfg.max, 100); var from = valueOrDefault(cfg.from, []); var count = valueOrDefault(cfg.count, 8); var decimals = valueOrDefault(cfg.decimals, 8); var continuity = valueOrDefault(cfg.continuity, 1); var dfactor = Math.pow(10, decimals) || 0; var data = []; var i, value; for (i = 0; i < count; ++i) { value = (from[i] || 0) + this.rand(min, max); if (this.rand() <= continuity) { data.push(Math.round(dfactor * value) / dfactor); } else { data.push(null); } } return data; } console.log(numbers({"min": -100, "max": 100, "count": 5}));
le résultat: on voit que la valeur de _seed change ! ce sont des millisecondes ! ( on le voit au premier chiffre affiché )
la valeur de this.rand(min, max) change à chaque itération.
Du coup , ça retourne un tableau avec des valeurs différentes .
Mais si je "traduit" en php ? comment avoir la même chose ? je ne trouve pas le moyen d'avoir le même résultat: la variable _seed ne change pas.
Parce que les microseconde en PHP ...
j'ai tenté un fonction:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public function milliseconds() { $mt = explode(' ', microtime()); return ((int)$mt[1]) * 1000 + ((int)round($mt[0] * 1000)); }
que j'appelle ensuite dans la fonction rand: $seed = $this->milliseconds(); mais il n'y a aucun changement
Je ne voit pas comment faire .
Si quelqu'un à une idée.
Merci,
Laurent.
Partager