2011-07-30 24 views
0

對不起,如果我要求的東西太具體了,但我是PHP初學者,這有點令人討厭。我想做一些功能來做一些數據處理和發送電子郵件,但是當我把電子郵件功能放在另一個功能中時,它不起作用。爲什麼會發生?PHP中兩段代碼的區別

這工作:

if (do some checking) { 
    //... 
    if (mail($to, $subject, $body)) { 
     echo 1; 
    } else { 
     echo 2; 
    } 
} else { 
    echo 3; 
} 

這不起作用(我剪的代碼了這一點,它仍然無法正常工作):

function sendMail($to, $subject, $body) { 
    if (mail($to, $subject, $body)) { 
     return 1; 
    } else { 
     return 2; 
    } 
} 
//... 
if (do some checking) { 
    //... 
    echo sendMail($to, $subject, $body); 
} else { 
    echo 3; 
} 
+0

什麼樣的價值,當'做一些checking'是呼應是真實的你給的第二塊? –

+0

你可以試着'echo'RESULT:'。sendMail($ to,$ subject,$ body);'在相應的行上。這可能是輸出問題。 –

+1

也許你應該打開你的php.ini中的錯誤報告。也許有一個錯誤信息沒有被顯示。 – Jeune

回答

2

這對我工作的罰款。

<?php 

function sendMail($to, $subject, $body) { 
    if (mail($to, $subject, $body)) { 
     return 1; 
    } else { 
     return 2; 
    } 
} 

if (true) { 
    echo sendMail('[email protected]', 'some subject', 'some body'); 
} else { 
    echo 3; 
} 

?> 

我得到1回聲。所以sendMail函數一定可行。

什麼「做一些檢查」已解決在您的腳本?檢查一下。

0

運行腳本時輸出1,2或3?

嘗試以下方法:在(順便說一句,你需要一個有效的電子郵件,以取代「[email protected]」你可以檢查)

<?php 
function sendMail($to, $subject, $body) { 
    if (mail($to, $subject, $body)) { 
     return 1; 
    } else { 
     return 2; 
    } 
} 

if (1) { 
    $to = "[email protected]"; 
    $subject = "Message Subject"; 
    $body = "Message Body"; 
    echo sendMail($to, $subject, $body); 
} else { 
    echo 3; 
} 
?>