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->add())msg('car added')elsemsg($car->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 代码都在同一个文件中,那么将这一行放在第一行下面就足够了。<?php
行。
如果在调用session_start()
之前打印了任何内容(甚至是空格或换行符),我认为您会收到“会话已开始”错误。但是我不确定,如果我错了,请纠正我。我不知道这是否是一个线索,因为我不知道你的其余代码。【参考方案2】:
我想你错过了括号:
$car=new yamiko_car;
应该是
$car=new yamiko_car();
【讨论】:
我原以为没有必要 没有必要,如果是,我的代码会在到达其中一种方法的底部之前中断 好的,我认为它们是必要的——学习永无止境。对不起!以上是关于return true 不返回或我的 else 语句不起作用?的主要内容,如果未能解决你的问题,请参考以下文章