PHP中两段代码的区别


Difference between two pieces of code in 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;
}

这对我来说很好。

<?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;
}
?>

得到1回显。所以sendMail函数确实有效。

"do some checking"在脚本中解析为什么?检查。

运行脚本时输出是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;
}
?>