Quelques questions à propos des fonctions

WRInaute occasionnel
Bonjour,

J'apprends à utiliser les fonctions php, en vue de passer à la programmation objet (un peu sur le tard, mais mieux vaut tard que jamais). Car jusqu'ici je n'utilisais pas les fonctions, enfin pas les fonctions personnalisées.
Je me permets donc d'ouvrir ce fil de discussion pour y poser les questions qui me viennent à l'esprit, au fur et à mesure.

Alors pour commencer : peut-on utiliser une fonction if, switch ou while dans une fonction personnalisée ?

Si oui, auriez-vous un bref cas de figure à me citer en exemple, histoire que je me figure le truc ?


Merci d'avance :)
 
WRInaute occasionnel
Bien sur que c'est possible.
Des exemples, il y en a pléthore...

Code:
  function year_is_a_leap_year($year){
    if($year % 4 == 0){
      if($year % 100 != 0){
        if($year % 400 == 0){
          return true;
        }else{
          return false;
        }  
      }else{
        return false;
      }
    }else{
      return false;
    }
  }

Hormis le fait que cette fonction est très mal optimisée, elle est néanmoins un exemple d'utilisation des conditions dans une fonction personnalisé ! :p (savoir si une date est bissextile)
Code:
  function year_is_a_leap_year($year){
    return ($year % 4 == 0 && $year % 100 != 0 && $year % 400 == 0)
  }

Pour les switch :

Code:
  function what_is_this_thing(&thing){
    switch ($thing) {
      case "pomme":
        echo "thing est une pomme";
        break;
      case "bannane":
        echo "thing est une bannane";
        break;
      case "poire":
        echo "thing est un poire";
        break;
    }
  }

Code:
  $truc = "pomme";
  what_is_this_thing(&truc);

ce bout de code devrait afficher "thing est une pomme"

Et pour les while :

Code:
  function print_all_number_to($i){
    $loop = 0;
    while($loop <= $i){
      echo $loop;
      $loop++;
    }
  }

Code:
  print_all_number_to(10);
Devrait afficher : 012345678910

Voilà :)
 
Discussions similaires
Haut