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

Posted

技术标签:

【中文标题】return true 不返回或我的 else 语句不起作用?【英文标题】:return true not returning or my else statment isn't working? 【发布时间】:2012-03-18 23:26:19 【问题描述】:

由于某种原因,我的 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);
elsemsg('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;
    elsereturn $query;

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

【问题讨论】:

你的 add 函数每次都返回true returns bool false on fail and true on success 我不知道它什么时候可以返回 FALSE 不,我没有将 cmets 放在那里,而不是显示用于获取和测试数据的所有代码。 $this->query() 究竟做了什么?如果您省略的某些代码可能是导致此行为的原因,则应在此处发布 你应该学会正确缩进你的代码 【参考方案1】:

听起来 PHP 可能会默默地崩溃,而解释只是停止了。尝试将PHP error level 设置为类似这样(在 PHP 脚本的开头):

error_reporting(E_ALL);

【讨论】:

啊,尝试将此行添加为 PHP 将解释的第一行。例如,如果您包含header.php,则需要将该行放在该文件的顶部。但是如果所有的 PHP 代码都在同一个文件中,那么将这一行放在第一行下面就足够了。&lt;?php 行。 如果在调用session_start() 之前打印了任何内容(甚至是空格或换行符),我认为您会收到“会话已开始”错误。但是我不确定,如果我错了,请纠正我。我不知道这是否是一个线索,因为我不知道你的其余代码。【参考方案2】:

我想你错过了括号:

$car=new yamiko_car;

应该是

$car=new yamiko_car();

【讨论】:

我原以为没有必要 没有必要,如果是,我的代码会在到达其中一种方法的底部之前中断 好的,我认为它们是必要的——学习永无止境。对不起!

以上是关于return true 不返回或我的 else 语句不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

js中return返回值小练习

if和else在程序中的位置关系

如果您的复选框被单击,如何制作一个 if..else 语句将返回 true?

cakephp 保存返回 true 但不保存

python 进阶语法

javascript中的 return false和return true