Problème avec un Array et une Classe

Fermé
Lyc@n Messages postés 221 Date d'inscription dimanche 24 octobre 2010 Statut Membre Dernière intervention 22 février 2014 - 19 janv. 2014 à 18:36
Lyc@n Messages postés 221 Date d'inscription dimanche 24 octobre 2010 Statut Membre Dernière intervention 22 février 2014 - 21 févr. 2014 à 22:08
Bonjour tout le monde, voilà, j'ai un petit problème, je suis en train de faire une classe Autoloader, et lors de l'instanciation de la classe, on doit donner un array contenant les chemins vers lequels l'autoloader doit aller chercher les classes à charger. Voilà les codes:

La classe Autoloader:
<?php
class Autoloader
{

	//Declarations
	private $_paths = array();
	
	
	public function __construct($paths)
	{
		$this->_paths = $paths;
	}
	
	
	public function Load($class)
	{
	
		foreach($this->_paths as $path);
		{		

			echo $path . '</br>';
		
			if (is_file($path . $class . '.class.php'))
			{
				include($path . $class . '.class.php');
			}
		}
	}
	
	public function Initialize()
	{
		spl_autoload_register(array($this, 'Load'));
	}
}

?>


L'instantiation de Autoloader:
include('libs/Autoloader.class.php');
$autoloader = new Autoloader(array('libs/', 'model/classes/'));
$autoloader->Initialize();


Vous devez avoir vus que j'ai mis un echo dans la classe Autoloader pour faire des tests, et seule la DERNIERE valeur que j'ai donné dans mon array en paramètre lors de l'instantiation reste, donc l'autoloader ne marche pas. Voilà engros ce qu'il ce passe:

Si j'instancie mon Autoloader avec 3 chemins:
include('libs/Autoloader.class.php');
$autoloader = new Autoloader(array('libs',  'model/classes/', 'classes/'));
$autoloader->Initialize();


Mon echo ne m'affichera que:
classes

Ce qui veut dire que le foreach ne se fait qu'une fois.

Quelqu'un pourrait il m'aider s'il vous plait? Je suis vraiment bloqué! Merci!

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
20 janv. 2014 à 10:25
Salut,

Supprime le point virgule après la condition du foreach l. 18 :
foreach($this->_paths as $path)
{
    echo $path . '</br>';
}


Bonne journée
0
Lyc@n Messages postés 221 Date d'inscription dimanche 24 octobre 2010 Statut Membre Dernière intervention 22 février 2014 14
21 févr. 2014 à 22:08
Désolé d'avoir mis autant de temps à répondre, j'ai fini par trouver l'erreur seul et oui c'était bien ça Pitet! Merci quand même! :)
0