2010-02-14 35 views
2

我才意識到,你不能只使用if語句上的功能,例如這不起作用:如何在PHP中對函數執行if語句?

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

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

我也看到,一個函數不能把爲a的值變量。那麼我該如何做一個if語句來檢查一個函數是否已經正確執行並顯示給瀏覽器呢?

回答

4

它不工作,因爲sayHello()不會返回任何地方return true在那裏或某物。

+0

回真正的作品,謝謝。但是在if語句中函數重複的問題也存在於這裏。它在瀏覽器中顯示「Hello WorldHello World」。 – Bruce 2010-02-14 02:05:45

+0

@Bruce:我已經複製並粘貼了您顯示的代碼並進行了測試(使用PHP 5.2.9)。我只得到一個「Hello World」。你確定你不是第二次調用sayHello()或者做其他事情來讓「Hello World」出現兩次嗎? – GreenMatt 2010-02-14 02:45:10

+0

@Bruce你可能會調用這個函數兩次。 – lemon 2010-02-14 03:59:14

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

謝謝,這個工程。只是有一件事,函數在if語句中再次重複,所以在瀏覽器中顯示「Hello WorldHello World」。 這可以在if語句內沒有函數重複的情況下完成。 – Bruce 2010-02-14 02:01:18

+0

我不知道爲什麼「Hello World」正在重複。如果你調用'sayHello()',它會打印出「Hello World」。我不確定你想要做什麼。如果你想打印「Hello World」,爲什麼不直接調用'sayHello()'。順便說一句,你不應該投票,因爲它的工作? – fastcodejava 2010-02-14 02:16:05

+1

只是好奇 - FOUR'='?兩個我知道,三個我知道... – Mawg 2010-02-14 02:26:11

-1

這將工作

<?php 

$name1 = "bobi"; 

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

hello($name1); 
?> 
+0

這是一個錯誤的解決方案,要求檢查函數的結果以處理進一步的解析 – Luceos 2014-05-22 11:16:43

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

    return 'Sen kimsin kardes?'; 
} 

echo selam('ugur'); 
+1

歡迎使用堆棧溢出!儘管這段代碼可以解決這個問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – Ferrybig 2016-11-18 10:34:30