Php return true不返回或我的else语句为';不行吗?
出于某种原因,我的else语句没有触发,我认为我的方法由于某种原因没有返回true 主代码Php return true不返回或我的else语句为';不行吗?,php,methods,if-statement,return,Php,Methods,If Statement,Return,出于某种原因,我的else语句没有触发,我认为我的方法由于某种原因没有返回true 主代码 function msg($content) { //function that echos out page with content in it } $car=new yamiko_car; if(!$car->add())//returns bool false on fail and true on success {msg($car->error);} else{msg('C
function msg($content)
{
//function that echos out page with content in it
}
$car=new yamiko_car;
if(!$car->add())//returns bool false on fail and true on success
{msg($car->error);}
else{msg('Car has been added');}
方法不是,它在失败时返回false,我测试了数据,只是在那里放了一条注释。已经测试过了,效果很好
public function add()
{
//gets data succesfully
//MySQL
$this->query("INSERT INTO car (year, make, model, price, obo, img1, img2, img3, img4, description)
VALUES ('$year', '$make', '$model', '$price', '$obo', '$img1', '$img2', '$img3', '$img4', 'txt') ");
echo 'mysql added';
return true;
}
function query($sql, $result=false)
{
$query=mysql_query($sql);
if(!$query){$this->mysqlError.=mysql_error().'<br />';return false;}
if($result==false){return true;}
else{return $query;}
}
公共函数添加()
{
//成功获取数据
//MySQL
$this->query(“插入汽车(年份、品牌、型号、价格、海外建筑运营管理局、img1、img2、img3、img4、说明))
值(“$year”、“$make”、“$model”、“$price”、“$obo”、“$img1”、“$img2”、“$img3”、“$img4”、“txt”);
echo“添加mysql”;
返回true;
}
函数查询($sql,$result=false)
{
$query=mysql\u查询($sql);
如果(!$query){$this->mysqlError.=mysql_error()。
;返回false;}
如果($result==false){return true;}
else{return$query;}
}
我添加了echo语句,它会触发fine…出现错误时,它返回false并运行
msg()
我将语句切换为
if($car->add()){msg('car added')}else{msg($car->error);}
if或else语句都不会触发此外,if语句之后的任何代码都不会触发,并且没有php或mysql错误。我认为您错过了括号:
$car=new yamiko_car;
应该是
$car=new yamiko_car();
听起来PHP可能会悄无声息地崩溃,解释也就停止了。尝试将设置如下(在PHP脚本的开头):
您的add函数每次都返回
true
,在失败时返回bool false,在成功时返回true
我看不出它什么时候可以返回false否否否我在那里放了注释,而不是显示获取和测试数据的所有代码。$this->query()到底做了什么?如果您遗漏的某些代码可能是导致这种行为的原因,您应该将其张贴在此处。您应该学会正确缩进您的代码。我会认为它们不是必需的,也不是必需的。如果是,我的代码会在到达某个方法的底部之前中断。OK,我认为它们是必需的-学习永不停止。很抱歉啊,尝试添加这一行作为PHP解释的第一行。例如,如果包含header.php
,则需要将该行放在该文件的顶部。但是,如果所有PHP代码都在同一个文件中,那么在调用session\u start()
之前,如果有任何内容(甚至空格或换行符)打印出来,则应该将该行放在第一个下面就足够了。但我不确定,如果我错了,请纠正我。我不知道这是否是一个线索,因为我不知道你的代码的其余部分。
error_reporting(E_ALL);