Php 如何通过另一个函数返回一个函数

Php 如何通过另一个函数返回一个函数,php,wordpress,function,return,Php,Wordpress,Function,Return,我打算创建一个checker函数,它将被其他函数使用。想法很简单:如果条件没有满足,通过返回函数来停止函数 这是原始代码: function awesome(){ $a = "2"; if ($a != "1"){return;} echo "awesome"; } 成功了。因为$a是2,所以返回函数,并且没有出现单词“awesome”。但是,有几个功能需要检查。为了避免重复,我这样做: function test($var){ if ($var != "

我打算创建一个checker函数,它将被其他函数使用。想法很简单:如果条件没有满足,通过返回函数来停止函数

这是原始代码:

function awesome(){ 
    $a = "2";
    if ($a != "1"){return;} 
    echo "awesome"; 
}
成功了。因为$a是2,所以返回函数,并且没有出现单词“awesome”。但是,有几个功能需要检查。为了避免重复,我这样做:

function test($var){
    if ($var != "1"){return;}
}

function awesome(){
    test("2");
    echo "awesome";
}

function awesomeagain(){
    test("3");
    echo "awesome";
}
但是出现了单词“awesome”,并且函数awesome()和awesomethere()都没有返回。如何通过添加test()函数返回这两个函数


多谢各位。非常感谢您的帮助。

要从函数返回,您必须使用
return
关键字

function test($var){
    if ($var == "1"){
        return TRUE;
    }
}

function awesome(){
    if (!test("2")){
        return FALSE;
    }
    echo "awesome";
    return TRUE;
}

就这样!PHP太棒了!:)

您的
test
函数必须返回一个值,您必须在其他函数中测试该值。大概是这样的:

function test($var) {
  if ($var != "1")
    return false;
  else
    return true;
}
function awesome() {
  if (test("2"))
    echo "awesome";
}
function test($var) {
  if ($var != "1")
    throw new Exception();
}
因此,您的代码应该如下所示:

function test($var) {
  if ($var != "1")
    return false;
  else
    return true;
}
function awesome() {
  if (test("2"))
    echo "awesome";
}
function test($var) {
  if ($var != "1")
    throw new Exception();
}
但是,如果您想热衷于检查,可以抛出异常。这应该是这样的:

function test($var) {
  if ($var != "1")
    return false;
  else
    return true;
}
function awesome() {
  if (test("2"))
    echo "awesome";
}
function test($var) {
  if ($var != "1")
    throw new Exception();
}
以及在其他功能中使用

function awesome() {
  try {
    test("2");
    echo "yeah";
  } catch ($e) {}      
}

fy您可能不应该依赖另一个函数来停止另一个函数窗体的运行。试试这个

function test($var){
    if ($var != "1"){return false;} return true;
}

function awesome(){
    if(test("2"))
    echo "awesome";
}

function awesomeagain(){
    if(test("3"));
    echo "awesome";
}

Fikry,尝试重新学习
条件的概念,这是基本的编程技巧。如果没有它,您将生成许多错误代码和函数。

哇,谢谢!“test()”是有效的,但我对“awome()”做了一点修改,所以代码是这样的:“if(test(“2”)==true)”,然后它像一个符咒一样工作:在php中,好的做法是检查值和类型,所以使用if(test(“2”)==true),因为在php中这将返回true(“2”==true),但是(“2”==true)将返回false。感谢您的回复,它与之前的响应非常相似,只需做一个非常小的修改,它就起作用了:Dhmm。。我不这么做,因为动作会放在awesome()和awesome()上,而这些动作是不同的。顺便说一句,是的,PHP很棒。感谢您的回复:谢谢您的编辑。我是新来的,仍然对格式感到困惑。