我正在编写一个小型的电子邮件到文本的脚本,似乎每次我将"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
。