Page 1 sur 1

Class et tableau

Posté : 12 juil. 2006, 13:47
par Maitrepylos
Bonjour,
Je crée une classe qui crée un tableau et qui mélange ce tableau
class ClassMots {
	
	private $Tableau;
	private $Rand; 

	function Mots() {
		
	/**
	 * Initialisation du fichier texte avec la séries de mots
 	*/
	$fp = fopen("../Mots/p-b.txt","r");


	if (!$fp) 
	{//si le fichier n'existe pas, à créer ici une gestion d'erreur
		echo "Echec de l'ouverture du fichier";

		exit;

	}

	else 
	{// on lit tout le fichier texte et récupère le contenu
		while(!feof($fp)) 
		{
		// On récupère une ligne
			$Ligne = fgets($fp,255);

		// On affiche la ligne
			//echo $Ligne;

		// On stocke l'ensemble des lignes dans une variable
			$Fichier .= $Ligne;

		}
	
		fclose($fp); // On ferme le fichier
	}


	/**
 	* insertion des données dans une variable tableau
 	*/

	$Tableau = explode(",",$Fichier);

	$Rand = array_rand ($Tableau,count($Tableau));
	
	$this->Tableau = $Tableau;
	$this->Rand = $Rand;

	}
	

	function set_Tableau($attr) 
	{
    	$this->Tableau = $attr;
	}

	function get_Tableau() 
	{
    	return $this->Tableau;
    }
    
    function set_Rand($attr)
    {
    	$this->Rand = $attr;
    }
    
    function get_Rand()
    {
    	return $this->Rand;
    }

Puis j'essaye de récupérer les données

//J'instancie l'objet
$mots = new ClassMots
//je crée le tableau
mots->Mots();
//j'instancie un deuxième objet
$melange=$mots

//j'affecte le tableau à $mot
$mots->get_Tableau();
//j'affecte le tableau aléatoire à $rand
$rand->get_Rand();

//je vérifie
var_dump($mots);
var_dump($rand)




Et les deux var_dump me renvoie un tableau en deux dimension reprenant au départ mon tableau de mots et puis mon tableau aléatoire.

Or je veux deux fois 1 tableau

Voici le résultat de var_dump($mots)

Code : Tout sélectionner

object(ClassMots)#1 (2) { ["Tableau:private"]=> array(10) { [0]=> string(5) "pomme" [1]=> string(7) "bananne" [2]=> string(12) "pamplemousse" [3]=> string(7) "pirates" [4]=> string(6) "bonbon" [5]=> string(4) "joli" [6]=> string(5) "salut" [7]=> string(6) "coucou" [8]=> string(7) " encore" [9]=> string(18) "la-je-fais-un-test" } ["Rand:private"]=> array(10) { [0]=> int(1) [1]=> int(7) [2]=> int(3) [3]=> int(5) [4]=> int(4) [5]=> int(2) [6]=> int(6) [7]=> int(0) [8]=> int(9) [9]=> int(8) } }
var_dump($melange), renvoie la même chose.

Merci de votre aide

Posté : 12 juil. 2006, 15:17
par Maitrepylos
J'ai trouvé,merci
class ClassMots {
	
	private $Tableau;
	private $Rand; 

	function Mots() {
		
	/**
	 * Initialisation du fichier texte avec la séries de mots
 	*/
	$fp = fopen("../Mots/p-b.txt","r");


	if (!$fp) 
	{//si le fichier n'existe pas, à créer ici une gestion d'erreur
		echo "Echec de l'ouverture du fichier";

		exit;

	}

	else 
	{// on lit tout le fichier texte et récupère le contenu
		while(!feof($fp)) 
		{
		// On récupère une ligne
			$Ligne = fgets($fp,255);

		// On affiche la ligne
			//echo $Ligne;

		// On stocke l'ensemble des lignes dans une variable
			$Fichier .= $Ligne;

		}
	
		fclose($fp); // On ferme le fichier
	}


	/**
 	* insertion des données dans une variable tableau
 	*/

	$Tableau = explode(",",$Fichier);

	//$Rand = array_rand ($Tableau,count($Tableau));
	
	$this->Tableau = $Tableau;
	//$this->Rand = $Rand;

	}
	
	function Melange()
	{
		$Rand = array_rand ($this->Tableau,count($this->Tableau));
		$this->Rand = $Rand;
		
	}
	
	
	function set_Tableau($attr) 
	{
    	$this->Tableau = $attr;
	}

	function get_Tableau() 
	{
    	return $this->Tableau;
    }
    
    function set_Rand($attr)
    {
    	$this->Rand = $attr;
    }
    
    function get_Rand()
    {
    	return $this->Rand;
    }
    
}