Page 1 sur 1

Fonction Enum en php

Posté : 08 déc. 2006, 02:42
par Ultim4T0m
Bonjour,

J'aurais aimé savoir si il existait l'équivalent du Enum en php.

En gros, j'aimerais pouvoir faire quelque chose du genre
<?php

$enum = enum(1,3,6);

echo $enum; // Affiche 1, 3 ou 6 aléatoirement

?>
Sinon je pourrais la faire avec des mt_rand(); mais si il y a déjà une fonction existante, autant l'utiliser ^^

Merci

Posté : 08 déc. 2006, 02:52
par Ultim4T0m
Erf, il se fait tard...

Bon, voilà ma solution que je me propose... ^^'
<?php

$nb_aleatoire = mt_rand(0,2);  // On génère un nombre aléatoire, 0, 1 ou 2
$enum = array(1, 3, 5);  // On remplit le tableau $enum des valeurs que l'ont veut

echo $enum[$nb_aleatoire];  // Affiche 1, 3 ou 5

?>
Enfin si quelqu'un sait si la fonction enum existe, ce qui m'etonnerait... Une fonction au nombre de paramètres variable, c'est pas super courant.
Bref, si quelqu'un sait, qu'il fasse un signe, histoire de dire que je n'ai pas posté pour rien ^^

Merci pour votre aide, bonne nuit et à bientôt :D

Posté : 08 déc. 2006, 03:52
par Ajoloca
Bonsoir,

Je ne sais pas si elle existe, mais QQ chose du style peux faire l'affaire
<?php
function myEnum(Array $tab){
    if(!empty($tab)) return ($tab[mt_rand(0, (count($tab) - 1))]);
    return (false);
}
$vals = Array(1, 3, 5, 7);
echo myEnum($vals);
?>

Posté : 08 déc. 2006, 04:11
par Ultim4T0m
Merci bien, je pense que je vais utiliser quelque chose du genre, c'est mieux que mon bidouillage ^^'

Et puis, en faire une fonction, ça permettra de s'en resservir si besoin par la suite.

Merci !

Personnellement, j'ai procédé comme ceci :
<?php
		$fin_nb_aleatoire = -1;	$enum = array();
		if($ressource1>500)	{	$fin_nb_aleatoire++;	array_push($enum, 1);	}
		if($ressource2>500)	{	$fin_nb_aleatoire++;	array_push($enum, 2);	}
		if($ressource3>500)	{	$fin_nb_aleatoire++;	array_push($enum, 3);	}
		if($ressource4>500)	{	$fin_nb_aleatoire++;	array_push($enum, 4);	}
		if($ressource5>500)	{	$fin_nb_aleatoire++;	array_push($enum, 5);	}
		
		$nb_aleatoire = mt_rand(0,$fin_nb_aleatoire);
		$evenement = $enum[$nb_aleatoire];
?>