所以我在php
中注意到了一些我不太理解的东西
假设我有一个简单的注册function
,如下所示:
Class signup extends Connect{
function __construct(){
parent::__construct();
parent::connect();
}
function signup($username,$password){
$res=$this->conn->prepare("INSERT INTO users(username,password)
VALUES(?,?)");
$res->bindparam(1,$username);
$res->bindparam(2,$password);
$res->execute();
}
}
在另一个文件中,我想检查注册是否成功,如下所示:
require("signup.php");
$signup=new signup();
if($signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
如果我成功注册,此语句将返回注册失败的,如果注册失败,将返回注册。
我假设这意味着如果function
注册运行成功,这意味着注册成功,所以消息应该是Signed up
但如果我在if
语句中使用!,如下所示:
if(!$signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
在这种情况下,如果数据正确且注册成功,则会回显注册。
不要误解我的问题,代码工作正常,没有错误,我只是好奇为什么它是这样工作的。
谢谢你的回答!
PS:上面的代码不是完整的代码
发布于 2019-05-21 04:58:03
signup()
方法没有return
语句,因此它默认返回null
,这是False值。您需要返回查询是否成功的指示。
function signup($username,$password){
$res=$this->conn->prepare("INSERT INTO users(username,password) VALUES(?,?)");
$res->bindparam(1,$username);
$res->bindparam(2,$password);
return $res->execute();
}
https://stackoverflow.com/questions/56227843
复制相似问题