Question fonction PHP et return

playboy-1990 Messages postés 593 Statut Membre -  
avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai entendus dire que si la commande return est appelé dans une fonction elle arrête la fonction.
Donc je me demande si cette fonction est correcte :
<?php
function test($letest='') {
if(!empty($letest)) {
    return $letest;
    return true;
    } else {
    return false;
    }
}
?>

Merci d'avance dans l'attente d'une réponse ;)



--
Appuyer sur Ctrl + W pour voir quelque chose d'étonnant et fantastique...

3 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Salut,

    Avec une meilleure indentation :
    <?php
    function test($letest='') {
        if(!empty($letest)) {
            return $letest;
            return true;
        } else {
            return false;
        }
    }


    Si la chaine n'est pas vide, ta fonction retourne la chaine.
    Je suppose que le but est de retourner true ou false, donc il faut supprimer la ligne :
    return $letest;
    0
    1. playboy-1990 Messages postés 593 Statut Membre 273
       
      Merci mais je voudrais faire que si la fonction retourne true, alors elle retourne également la chaîne
      0
    2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      Une fonction ne peut retourner qu'une valeur.
      La solution est donc de retourner false ou bien la chaine.

      Et une chaine qui n'est pas vide est égale à true.
      Donc :
      <?php
      function test($letest='') {
          if(!empty($letest)) {
              return $letest;
          } else {
              return false;
          }
      }
      
      $chaine = '...';
      
      if(test($chaine) == true) {
          echo 'Pas vide';
      } else {
          echo 'Vide';
      }
      ?>
      0
  2. Lambo31 Messages postés 25 Statut Membre
     
    bonjour, essaye
    return true . $letest;
    Car dans ton code le second return ne sera jamais pris en compte.
    0
    1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      Tu mélanges deux type : un booléen et une chaine.
      0
  3. Leviathan49 Messages postés 267 Statut Membre 70
     
    Sinon tu peut essayer les "références" (https://www.php.net/manual/fr/language.references.pass.php )

    ex:
    $a=1   
    
    function test(&$letest)    
    {   
        if(!empty($letest))    
        {   
            $letest++;   
            return true;   
        }    
        else    
        {   
            return false;   
        }   
    }   
    
    test($a)   
    echo $a //affiche 2   
    


    D'ailleurs dans ta fonction function test($letest='') fait que $letest ne sera jamais vide, vu que tu lui asigne une valeur par défaut...
    0