2010-08-15 4 views
3

J'ai une fonction qui renvoie une valeur référencée par défaut - cependant, la fonction devrait retourner false si quelque chose s'est mal passé lors du traitement des choses dans la fonction.PHP: par-référence-fonction avec booléen comme valeur de retour - avis étrange

La fonction est déclarée comme suit. PHP me donne un avis que "seules les références de variables doivent être renvoyées par référence". Dois-je vraiment mettre $result = false; dans mon code et retourner $result? Ce serait ridicule.

Merci d'avance pour votre aide.

+0

Quelle version de php utilisez-vous? –

+0

Je suis sur le dernier, PHP 5.3.3. – Daniel

Répondre

4

Je pense que ce n'est pas un bon moyen de coder une fonction de recherche générale car il serait impossible de déterminer si une valeur FALSE retournée par la fonction signifie que la valeur de l'article recherché était FALSE ou si le article n'a pas été trouvé.

Si vous savez que FALSE ne sont pas des valeurs légales que son OK, sinon vous devez implémenter la fonction de recherche d'une manière différente. Par exemple ainsi:

function find($idx, & $found_value, $pref_array = false) { 
    // pseudocode 
    if found: 
    $found_value = $array[$idx] 
    return true 
    else: 
    return false 
} 

De cette façon, vous pouvez toujours savoir si l'article demandé a été trouvée en vérifiant la valeur retournée par la fonction et si la valeur retournée est vrai que vous auriez une référence à l'article trouvé dans la variable référencée par l'argument $found_value.

Enfin, de cette façon, vous ne recevez pas d'avis étrange;)

+0

Merci pour votre réponse - ressemble à une alternative intelligente. – Daniel