Page 1 sur 1

Difficultés à utiliser les class PHP

Posté : 25 sept. 2016, 10:26
par mineyou
Bonjour,
j'ai créer une classe qui me permet d'extraire les termes avant les virgules dans un fichier .txt puis qui crée deux tableau pour séparer les termes (1 sur 2) puis qui les assemble dans un tableau associatif. Utiliser sans class j'y arrive sans problème mais avec la class je n'y arrive plus ca n'affiche rien, je suis débutant en POO et malgré que j'ai recherché sur internet je ne trouve pas Merci de votre aide


Fichier avec la class:
<?php

class extract
{
	private $filename;
	private $filehost;
	public $param = array();
	private $link;
	private $file;
	private $pdata = array();
	private $value = array();
	public $data;
	private $num;
	
	public function __construct($filehost,$filename)
	{
		$this->filename = $filename;
		$this->filehost = $filehost;
	}
	
	public function extract_param()
	{
		$this->link = $this->filehost.$this->filename;
	
		$this->file = fopen($this->link,"r");
		
		$this->pdata = fgetcsv($this->file,0,",");
		
		
		
		for ($this->num = 0; isset($this->pdata[$num]); $this->num++)
		{
			if($this->num%2==0)
			{
			$this->param[] = $this->data[$this->num];
			}
			elseif($this->num%2!=0)
			{
				$this->value[] = $this->data[$this->num];
			}
		}
		
		for($this->num=0;isset($this->value[$this->num]) && isset($this->param[$this->num]);$this->num++)
		{
			$this->data[$this->param[$this->num]] = $this->value[$this->num];
		}
		
		return $this->data;
	}
}


Fichier qui apelle la class:
<?php
require 'param.class.php';

$data_config = new extract('','param.txt');

$data_config->extract_param();

print_r($data_config->data);

?>

exemple de fichier contenant termes :
hello,c'est moi,
Merci de votre aide

Re: Difficultés à utiliser les class PHP

Posté : 25 sept. 2016, 15:32
par or 1
3 lignes à changer :
for ($this->num = 0; isset($this->pdata[$this->num]); $this->num++)
$this->param[] = $this->pdata[$this->num];
$this->value[] = $this->pdata[$this->num];

à noter qu'une variable qui n'est utilisée que dans une fonction n'a pas besoin d'être une variable de classe. cela permet d'avoir un code bien plus clair :
for ($num = 0; isset($pdata[$num]); $num++)