2010-02-14 8 views
2

Je viens de réaliser que vous ne pouvez pas utiliser une instruction if sur une fonction, par exemple, cela ne fonctionne pas:Comment faire une instruction if sur une fonction en PHP?

function sayHello() 
{ 
    echo "Hello World"; 
} 

if(sayHello()) 
    echo "Function Worked"; 
else 
    echo "Function Failed"; 

J'ai aussi vu qu'une fonction ne peut pas être mis à la valeur d'un variable. Alors, comment puis-je faire une instruction if pour vérifier si une fonction s'est correctement exécutée et l'afficher dans le navigateur?

Répondre

4

Cela ne fonctionne pas puisque sayHello() ne retourne rien, place return true là ou quelque chose.

+0

retour de véritables œuvres, merci. Mais le problème de la fonction qui se répète à l'intérieur de l'instruction if est également présent ici. Il dit "Bonjour WorldHello World" dans le navigateur. – Bruce

+0

@Bruce: J'ai copié et collé le code que vous avez montré et testé (avec PHP 5.2.9). Je reçois seulement un "Hello World". Êtes-vous sûr de ne pas appeler sayHello() une deuxième fois ou de faire quelque chose d'autre pour que le "Hello World" apparaisse deux fois? – GreenMatt

+0

@Bruce vous appelez probablement la fonction deux fois. – lemon

2
if (sayHello() === FALSE) 
    echo "Function Failed"; 
else 
    echo "Function Worked"; 
+1

Merci, cela fonctionne. Juste une chose cependant, la fonction est répétée à nouveau dans l'instruction if, ainsi "Hello WorldHello World" est affiché dans le navigateur. Cela peut-il être fait sans que la fonction ne se répète dans l'instruction if. – Bruce

+0

Je ne sais pas pourquoi "Hello World" se répète. Si vous appelez 'sayHello()', il affichera "Hello World". Je ne suis pas sûr de ce que vous voulez faire. Si vous voulez imprimer "Hello World" pourquoi n'appelez-vous pas 'sayHello()'. Btw ne devriez-vous pas voter depuis que cela a fonctionné? – fastcodejava

+1

juste curieux - QUATRE = '??? Deux que je connais, trois que je connais ... – Mawg

-1

cela fonctionnera

<?php 

$name1 = "bobi"; 

function hello($name) { 
if($name == "bobi"){ 
    echo "Hello Bob"; 
    } else { 
     echo "Morning"; 
    } 
} 

hello($name1); 
?> 
+0

c'est une solution incorrecte à la question demandant de vérifier le résultat d'une fonction afin de traiter l'analyse ultérieure – Luceos

-1
function selam($isim) 
{ 
    if ($isim == 'ugur') { 
     return 'Selam '.$isim.' :)'; 
    } 

    return 'Sen kimsin kardes?'; 
} 

echo selam('ugur'); 
+1

Bienvenue dans Stack Overflow! Bien que cet extrait de code puisse résoudre la question, [y compris une explication] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) aide vraiment à améliorer la qualité de votre message. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. – Ferrybig