Question fonction PHP et return

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. 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;
    1. Merci mais je voudrais faire que si la fonction retourne true, alors elle retourne également la chaîne
    2. 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';
      }
      ?>
  2. bonjour, essaye
    return true . $letest;
    Car dans ton code le second return ne sera jamais pris en compte.
    1. Tu mélanges deux type : un booléen et une chaine.
  3. 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...