返回true不返回或我的else语句不起作用?

时间:2012-02-29 13:09:48

标签: php methods if-statement return

由于某些原因,我的其他声明没有触发,我认为我的方法由于某种原因没有返回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('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;}
}

我添加了echo语句,它触发了很好的...
当出现错误时,它返回false并运行msg()
我将语句切换到if($car->add()){msg('car added')}else{msg($car->error);} if或else语句都不会触发 此外,if语句之后的任何代码都不会触发,并且没有php或mysql错误。

2 个答案:

答案 0 :(得分:1)

听起来好像PHP可能会无声地崩溃,解释就会停止。尝试将PHP error level设置为类似的内容(在PHP脚本的开头):

error_reporting(E_ALL);

答案 1 :(得分:-1)

我认为你错过了括号:

$car=new yamiko_car;

应该是

$car=new yamiko_car();