条件导致代码失败


Conditional Causes Code to Fail

我正在编写一个小型的电子邮件到文本的脚本,似乎每次我将"doMail()"函数包装在if语句中时,它都会失败,或者在函数中,如果我用if语句包装mail()函数,它也会失败。

然而,如果我去掉条件句,它就像一个符咒?我该怎么办?这可能是什么原因造成的?

编辑:"…它失败了",我的意思是它呼应了"出了问题!"正如它应该根据代码一样。

这是代码:

<?php
error_reporting(E_ALL);
session_start();
if (!$_SESSION['doesExist'] == true) 
    {
        echo "Session doesn't exist!";
        die();
    }
if (!isset($_POST['num']) || !isset($_POST['carrier']) || !isset($_POST['msg'])) 
    {
        echo "Failed!";
        die();
    }
$num = $_POST['num'];
$car = $_POST['carrier'];
$msg = $_POST['msg'];
$subject = '';
$head = 'From: admin@google.com' . "'r'n";
switch ($car)
    {
        case "att":
            $num .= "@txt.att.net";
            break;
        case "verizon":
            $num .= "@vtext.com";
            break;
        case "tmobile":
            $num .= "@tmomail.net";
            break;
    }
function doMail($toNum, $sub, $message, $headers)
    {
        if(mail($toNum, $sub, $message, $headers))
            {
                echo "Done!";
            }
        else
            {
                echo "Something went wrong!";
            }
    }
doMail($num, $subject, $msg, $head);
?>

显然,根据这条注释,mail()函数可能返回一个空字符串,而不是TRUE的布尔值,因此,在条件语句中,当空值被认为是FALSE时,它将被计算为FALSE