Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么($signup->;signup(…))会返回消息";“注册失败”;注册成功了吗?_Php_Pdo - Fatal编程技术网

Php 为什么($signup->;signup(…))会返回消息";“注册失败”;注册成功了吗?

Php 为什么($signup->;signup(…))会返回消息";“注册失败”;注册成功了吗?,php,pdo,Php,Pdo,所以我注意到php中有一些我不太理解的东西 假设我有一个简单的注册功能,如下所示: Class signup extends Connect{ function __construct(){ parent::__construct(); parent::connect(); } function signup($username,$password){ $res=$this->conn->prepare("INSERT INTO users(username,password) V

所以我注意到
php
中有一些我不太理解的东西

假设我有一个简单的注册
功能
,如下所示:

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";
}
if(!$signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
在另一个文件中,我想检查注册是否成功,如下所示:

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";
}
if(!$signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
如果我成功注册,此语句将返回Sigup failed,如果失败,则返回Sigup

我假设这意味着如果
函数
注册成功运行,这意味着注册成功,因此消息应该是已注册

但是如果我真的使用
if
语句中,如下所示:

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";
}
if(!$signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
在这种情况下,如果数据正确且注册成功,则将回显注册的

不要误解我的问题,代码工作正常,没有错误,我只是好奇为什么它是这样工作的

谢谢你的回答

PS:上面的代码不是完整的代码
signup()
方法没有
return
语句,因此它默认返回
null
,这是错误的。您需要返回查询是否成功的指示

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();
}