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

时间:2011-03-12 15:37:09

标签: php wordpress function return

我打算创建一个将由其他函数使用的检查器函数。这个想法很简单:如果不满足条件,则通过返回来停止该功能。

这是原始代码:

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()和awesomeagain()。如何通过添加test()函数返回这两个?

谢谢。我非常感谢你的帮助。

5 个答案:

答案 0 :(得分:2)

您的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 awesome() {
  try {
    test("2");
    echo "yeah";
  } catch ($e) {}      
}

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

f你可能不应该依赖另一个函数来阻止另一个函数形式运行。试试这个

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

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

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

答案 3 :(得分:1)

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

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

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

Fikry,尝试重新学习conditional的概念,这是基本的编程技巧。没有它,你将制作许多错误的代码和功能。

答案 4 :(得分:0)

function test($var) {
    if ($var != "1"){
        return "awesome";
    }
    // do something else when $var is not "1" here.
}
function awesome(){
    echo test("2");
}
function awesomeagain(){
    echo test("3");
}

就是这样! PHP太棒了! :)