为什么if(function_name())不起作用?

时间:2010-06-09 19:21:02

标签: php

嘿伙计们真的很快问题,我有一个简单的测试,我正在做的是证明一点,它不能像我预期的那样工作,但我不确定为什么它不起作用。

function test(){
    echo 'test';
}

if (test()){
    echo 'ok';
}

那是我的考验。 'ok'没有回应,我不知道为什么。我正在测试这个,因为我的真实代码是调用类方法而且也没有用。

if($database->addNewUser($user, md5($pass), $userfile, $email, $age)){
    return 0;  //New user added succesfully
}

addNewUser方法执行并执行它应该做的事情,但返回0;才不是。有人对此有任何了解吗?

5 个答案:

答案 0 :(得分:7)

因为你的测试功能是ECHOING没有返回..

function test(){
   return true; // what to send back
}

if (test()){ // true was sent back, so.
    echo 'ok';
}

将回复'ok'。

查看$ database-> addNewUser() - 返回什么

答案 1 :(得分:1)

您的函数test()不会返回任何值。 PHP将缺少值视为false,因此永远不会执行if块的主体。

使用完整的示例,问题是addNewUser没有返回值,或者返回错误值。

答案 2 :(得分:1)

你需要返回一些东西来表示成功。这些都可以起作用:

function test(){
    echo 'test';
    return TRUE;
}

或者,不太理想,但仍应该有效:

function test(){
    echo 'test';
    return 1;
}

答案 3 :(得分:0)

您的功能不会返回true。为什么你会期待“好”被回应?

答案 4 :(得分:0)

您的test()函数没有return一个值 - 我不希望这会起作用。尝试从中返回一些内容,例如TRUE