[Résolu] Class et function

Class et function [Résolu] - PHP - Programmation

Marsh Posté le 12-04-2010 à 20:39:03    

Bonsoir,
 
Comment interpréter FolderSet::removeDir ?
 

Code :
  1. class FolderSet
  2. {
  3. ...
  4. function removeDir($PathName)
  5. {
  6. if(is_dir($PathName))
  7. {
  8.  $sHandle = opendir($PathName);
  9.  if(false !== $sHandle)
  10.  {
  11.   while($oName = readdir($sHandle))
  12.   {
  13.    if('.' !== $oName && '..' !== $oName)
  14.    {
  15.     if(is_dir($PathName . '/' . $oName))
  16.     {
  17.      FolderSet::removeDir($PathName . '/' . $sName);
  18.     }
  19.     else if(file_exists($PathName . '/' . $oName))
  20.     {
  21.      @unlink($PathName . '/' . $oName);
  22.     }
  23.    }
  24.   }
  25.   closedir($sHandle);
  26.   @rmdir($PathName);
  27.  }
  28. }
  29. }


 
Merci pour votre aide.


Message édité par edaz51 le 14-04-2010 à 12:11:10
Reply

Marsh Posté le 12-04-2010 à 20:39:03   

Reply

Marsh Posté le 12-04-2010 à 20:45:19    

ce code vient d'où ?
il est absolument horrible

Reply

Marsh Posté le 12-04-2010 à 20:53:15    

Il est extrait d'un groupware (solution opensource).

Reply

Marsh Posté le 12-04-2010 à 21:12:50    

tu es sur que tu n'en pas enlevé un bout ?


Message édité par flo850 le 12-04-2010 à 21:15:17
Reply

Marsh Posté le 12-04-2010 à 21:37:22    

Oui désolé, le nom de la fonction removeDir(), je viens d'éditer mon premier post.


Message édité par edaz51 le 12-04-2010 à 21:37:42
Reply

Marsh Posté le 12-04-2010 à 21:39:18    

tout de suite c'est plus lisible
 
c'est une fonction d'effacement recursif : si $path est un fichier il l'efface, si c'est un dossier, il en efface le contenu avant de l'effacer

Reply

Marsh Posté le 12-04-2010 à 21:49:45    

Il repasse donc dans la fonction.
Pourquoi est-on obligé de faire référénce à la classe FolderSet:: avec cette syntaxe particulière ?


Message édité par edaz51 le 12-04-2010 à 21:49:57
Reply

Marsh Posté le 12-04-2010 à 21:56:10    

Il est pas obliger, c'est juste que le code est orienté objet :o
FolderSet suivi de ":" signifie que c'est un appel static, et non pas par rapport à une instance particulière de la classe


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 12-04-2010 à 21:57:28    

ça signifie qu'on appelle la fonction statique qui est situé dans la classe FolderSet

Reply

Marsh Posté le 12-04-2010 à 22:08:51    

Merci beaucoup flo850 et esox_ch pour votre aide.
 
Je viens d'apprendre que cela s'appelle un opérateur de résolution de portée qui permet d'appeler la fonction correspondante dans la classe définie.


Message édité par edaz51 le 12-04-2010 à 22:11:14
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed