Voici le probleme : On a dans la classe une methode Cfct_tri que l'on veut appeller pour faire un tri. pour eviter d'avoir trop de fonction dans la classe en private vu que ce n'est qu'un tri on voudrait mettre les fonction fct_compare et fct_comparedesc dans la methode Cfct_tri de la classe. Malheureusement on ne peut pas faire cela car si on appele deux fois la methode on aura un probleme de declaration. pour palier a cela on cree les deux methode Cfct_compare et Cfct_comparedesc dans la classe et on fait un usort avec le array($this,"Cfct_compare"); Exemple :

[PHP]
<?php
 class test
{
		private function Cfct_tri()
		{
			switch($this->methodetri)
			{
				case 1:
					$this->Cfct_tri_titre("ASC");
				break;
				case 2:
					$this->Cfct_tri_titre("DESC");
			}
		}
//on ne peut pas faire ca comme ca
/*
		private function Cfct_tri_titre($val)
		{
			function fct_compare($a,$b)
			{
				return strcmp($a[5],$b[5]);
			}
			function fct_comparedesc($a,$b)
			{
				return (-1)*strcmp($a[5],$b[5]);
			}

			if ($val=="ASC")
				usort($this->chaine_de_sortie,"fct_compare");
			else 
				usort($this->chaine_de_sortie,"fct_comparedesc");
*/

		}
//on le fait comme ca
		private function Cfct_tri_titre($val)
		{
			if ($val=="ASC")
				usort($this->chaine_de_sortie,array($this,"Cfct_compare"));
			else 
				usort($this->chaine_de_sortie,array($this,"Cfct_comparedesc"));
		}
		private function Cfct_compare($a,$b)
		{
			return strcmp($a[5],$b[5]);
		}
		private function Cfct_comparedesc($a,$b)
		{
			return (-1)*strcmp($a[5],$b[5]);
		}

}
?>