函数add_new_user
是否在if子句内部运行SQL INSERT查询?
我有功能
function add_new_user ( $username, $email, $passhash_md5 )
{
-- cut: database INSERT queries
return 1;
}
我使用上面的代码
if ( validate( $username, $password, $email ) == 1 ) {
if ( add_new_user ( $username, $email, $passhash_md5 ) == 1 ) {
// problem here
-- cut
}
}
我问了这个问题,因为我不确定为什么this handler总是给出不成功的注册通知。这两个代码属于处理程序。该错误似乎在我的代码的语法中,也许在使用if / else。
答案 0 :(得分:4)
add_new_user函数是否运行 SQL INSERT查询是否在其中 if -clause?
是
function foo() {
echo 'A';
return true;
}
function bar() {
echo 'B';
return false;
}
if ( foo() ) {
if ( bar() ) {
echo 'C';
}
}
// Output: AB
答案 1 :(得分:3)
是强>
该函数首先得到它的返回值的评估。
在返回值已知后,将返回值与整数值1进行比较。
答案 2 :(得分:1)
是。运行if (
和) {
之间的任何内容以查看它是否为真。你可以在这里做任何事情。
答案 3 :(得分:1)
PHP必须评估布尔表达式,以便知道它是否会执行该块。因此,要评估“==”运算符,需要对双方进行求值,包括函数“add_new_user”。
所以,答案是:是,它将评估函数add_new_user AND 它将执行插入操作(除非你在add_new_user中有一些代码会阻止这个)。
但是,你正在做一些应该尽可能避免的事情:你正在使用有副作用的病症!这会让你头疼(例如,现在!)。