PHP:退出一个函数

时间:2011-03-29 14:44:28

标签: php function

一个新手风格的问题,我很害怕。我想知道是否有人可能会告诉我在以下情况下最佳做法是什么。

应该是......

function submitted_data()
{
 //Testing user data
 if(userdata != correctlyentered)
 {
   display_form(errors);
 }
 //Submit verified data to server
}

在这种情况下,从display_form内部调用submitted_data时的正确语法是什么,因为当我不想要它时,它会继续将数据提交给服务器。

或者应该是......

function submitted_data()
{
 //Testing user data
 if(userdata != correctlyentered)
 {
   display_form(errors);
 }
 else
 {
 //Submit verified data to server
 }
}

或者没有任何区别?

感谢。

5 个答案:

答案 0 :(得分:2)

你的第二个例子是有效的:

function submitted_data();
{
 //Testing user data
 if(userdata != correctlyentered)
 {
   display_form(errors);
 }
 else
 {
 //Submit verified data to server
 }
}

要“退出”某个功能,请使用return。可以这样做:

function submitted_data();
{
 //Testing user data
 if(userdata != correctlyentered)
 {
   display_form(errors);
   return;
 }
 //Submit verified data to server
}

答案 1 :(得分:1)

如果你不使用else语句并且不在if中写一个return语句,那么第一个例子将在每种情况下都向服务器提交数据。

答案 2 :(得分:1)

如果您想退出某项功能,则需要return

通常情况下,如果您因为检测到问题而退出某个功能 - 您将return false,这样您就可以编写代码,如果该函数向您发回0 / false结果。

如果您的功能按照您的意愿运行,请使用return true,这样您就可以编写功能,当功能完成应该没有问题的时候做什么。

当然你可以返回其他东西 - 我个人试图避免在函数中使用'echo',以便我可以选择在不同的情况下保存或输出数据。

所以:

function myFunction() {
  $result = "something happened";
  return $result;
}

echo myFunction();

最好是:

function myFunction() {
  $result = "something happened";
  echo $result;
  return true;
}

因为我可以调用myFunction来测试它而不必显示结果,或者我可以选择显示结果。两只鸟被杀,一块石头被使用。

答案 3 :(得分:0)

首先,不要在函数声明后添加分号。

无论如何,这完全取决于你想要做什么。如果添加else(第二个块),代码将仅在userdata != correctlyentered为FALSE时运行。如果你不添加else(第一个块),代码将始终运行。

编辑: 要退出某个功能,您可以使用return

if(userdata != correctlyentered)
{
  display_form(errors);
  return;
}

答案 4 :(得分:0)

我认为在这种情况下,您应该选择{}

中代码嵌套最少的变体
function submitted_data()
{
 //Testing user data
 if(userdata != correctlyentered)
 {
   display_form(errors);
   return;
 }

 //Submit verified data to server

}