Kommunauty
Connexion
Inscription

fonction is_dir


db77 Messages : 79

Et pour la deuxième fonction, il faudrait essayer ça :


$dirname='dossier';
$vide=sizeof(glob($dirname.'/*.*'))==0? true:false;
samedi 24 novembre 2012 (Dernière édition samedi 24 novembre 2012)

Darkevil Messages : 221

J'essaye ça ce soir, quand je serais sur mon PC. Merci pour tout, en tout cas

samedi 24 novembre 2012

db77 Messages : 79

Ensuite, si le ".." sème la pagaille, il suffira de tester à 1 plutôt qu'à zéro

En fait, tu adapteras le test en fonction de tes tests

samedi 24 novembre 2012 (Dernière édition dimanche 25 novembre 2012)

Darkevil Messages : 221

Hum, la recherche dans des tableaux coûte plus ou moins de ressource que un if ?

mardi 27 novembre 2012

db77 Messages : 79

Tout dépend de ce que tu veux faire exactement.

Pour le tester tu fais echo time(); avant et echo time(); après

mardi 27 novembre 2012 (Dernière édition mardi 27 novembre 2012)

Miya Messages : 9

Bonsoir, désolé de déterrer ce topic mais ça pourrait servir par rapport à ce code:

function dir_exist($dirname){
return (file_exists($dirname)&&is_dir($dirname))? true:false;
}

Au niveau de la simplicité dont tu parlais db77, file_exists($dirname)&&is_dir($dirname) renvoie déjà un booléen, pourquoi utiliser un opérateur ternaire ici alors que tu peux directement retourner le test? C'est un peu redondant de dire "si ma condition renvoie vrai alors je renvoie vrai sinon je renvoie faux", non?

function dir_exist($dirname){
return (file_exists($dirname)&&is_dir($dirname));
}

Par contre niveau lisibilité du code, aucun des deux (après ça dépend du dev évidemment) n'est beaucoup plus lisible que l'autre; une personne n'ayant jamais vu les ternaires va se demander comment lire ça (ici c'est un cas simple donc ça va), tout comme une personne n'ayant pas l'habitude de lire un return d'une condition va se demander ce qu'il se passe.

Après tout dépend de l'utilisation. Si la personne qui utilise la fonction n'a pas besoin de savoir ce qu'il y a à l'intérieur (boite noire), on se fiche un peu de comment c'est géré à l'intérieur. Par contre, si ce code est modifié par la suite par d'autres personnes (boite blanche), il faut je pense privilégier la facilité de relecture, de compréhension et la facilité d'évolution du code, dans ce cas, des if-else-elseif-switch seraient plus appropriés d'après moi.

function dir_exist($dirname){
  if(file_exists($dirname)&&is_dir($dirname)) {
    return true;
  } else {
    return false;
  }
}

Voir certains dev (dont quelques-uns de mes profs) préfèrent n'effectuer qu'un seul return et stocker le booléen dans une variable juste au cas où il faudrait ajouter des choses dans le if par la suite.

function dir_exist($dirname){

  $flag = false;

  if(file_exists($dirname)&&is_dir($dirname)) {
      $flag = true;
  }

  return $flag;
}

Idem pour les accolades, certains en mettent, d'autres non. Si on en met, on prévoit le cas où un autre dev devrait passer derrière pour ajouter quelque chose plus tard, sinon il doit les ajouter lui même; encore une fois, ça parait débile sur un code comme ça mais sur du code plus complexe et plus long, ça peut faire gagner du temps.

Je ne dis pas du tout que c'est mal ce qui a été dit dans ce topic, loin de moi cette idée, et je ne dis pas non plus que ce que j'ai écrit est la voie à suivre absolument, ce n'est pas le but. Je mets juste l'accent sur le fait que pour exécuter une action, il existe beaucoup de syntaxes différentes et que la "simplicité" dépend de la personne qui va reprendre le code derrière et de son utilisation.

Celles-ci auront le même résultat final mais avec quelques différences, notamment niveau performance. Mais parfois, il est préférable de sacrifier un peu de perf au profit d'un code plus clair.

J'espère que mon post n'a pas trop embêté le monde, si c'est le cas, n'hésitez pas à le supprimer et à m'en excuser.

mardi 15 janvier 2013

db77 Messages : 79

Je suis tout à fait d'accord avec ce que tu dis et moi je n'aurais même pas créé cette fonction.

De plus, il faut toujours commenter son code, surtout quand ça se complique

Je suis partisan des accolades même s'il n'y a qu'une action et pas de else.

Et enfin, chacun a sa façon de faire, tout dépend s'il pense aux autres, qui vont devoir maintenir après lui.

mercredi 16 janvier 2013

Répondre Pour répondre, tu dois d'abord t'inscrire rapidement sur Kommunauty. Rejoins-nous vite !