我在我的一个网页中使用AJAX。 我在这里指定了dataType为JSON。
jQuery.ajax({
url: "www.mydomain.com/ajax.php",
type: "post",
dataType: "json",
data:{to_email_address:"myemail@gmail.com"},
success:function(response){
response = jQuery.parseJSON(response);
if(response){
alert("success");
}
else{
alert("Failed, Try again");
}
}
});
在ajax.php
中,我使用echo
json_encode
功能如下
<?php
if(!($mail_to_address, $mail_subject, $content, $headers)) {
echo json_encode(false);
}
else{
echo json_encode(true);
}
?>
但是我已经在某处使用die
代替echo
,就像
<?php
if(!($mail_to_address, $mail_subject, $content, $headers)) {
die(json_encode(false));
}
else{
die(json_encode(true));
}
?>
任何人都可以解释哪种方式更好,为什么? 提前谢谢..
答案 0 :(得分:5)
如果你echo
而不是die
,那么你冒着错误地在某天错误地产生更多输出的风险,而不是后来的行。
如果你die
,它会在那里打印并结束所有内容。这是唯一的区别。
以下是使用代码的示例
<?php
if(!($mail_to_address, $mail_subject, $content, $headers)) {
echo json_encode(false); // a die would stop everything here
}
else{
echo json_encode(true);
}
echo "oops this was mistakenly printed"; // this breaks your JSON
?>
如果您使用die
代替echo
,则最后echo
不会破坏您的JSON
,因为它永远不会执行。
如果您知道在有条件检查后没有任何内容,或者您确信没有特殊原因可以使用die()
,则可以继续使用echo
。所以你的问题的答案是:只要你的输出在你的控制之下,它们都不会优于另一个。