Fonction Enum en php

Eléphant du PHP | 445 Messages

08 déc. 2006, 02:42

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
LLDC
Ulti

Eléphant du PHP | 445 Messages

08 déc. 2006, 02:52

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
LLDC
Ulti

ViPHP
ViPHP | 1961 Messages

08 déc. 2006, 03:52

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);
?>
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 445 Messages

08 déc. 2006, 04:11

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];
?>
LLDC
Ulti