PHP中两段代码的区别

时间:2011-07-30 16:15:04

标签: 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;
}

2 个答案:

答案 0 :(得分:2)

这对我来说很好。

<?php

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

if (true) {
    echo sendMail('some@email.org', 'some subject', 'some body');
} else {
    echo 3;
}

?>

我得到了回应。所以sendMail功能肯定有效。

在您的脚本中解析了什么“做一些检查”?检查一下。

答案 1 :(得分:0)

运行脚本时输出是1,2还是3?

请尝试以下操作:(顺便说一句,您需要将'email@example.com'替换为您可以检查的有效电子邮件)

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

if (1) {
    $to = "email@example.com";
    $subject = "Message Subject";
    $body = "Message Body";
    echo sendMail($to, $subject, $body);
} else {
    echo 3;
}
?>