php if条件判断数组返回[false]

Amy安 2015-09-21 04:25:58
{"code":200,"message":"success","data":[false]}

 $sql_notice=mysql_query(sql语句)
$arrData =array();
while ($arrData[] = mysql_fetch_array($sql_notice))
{
$arrData;
}
$sData = array_values($arrData);
if(。。。){
Response::json(200,'success',$sData);
}else{
Response::json(400,'error',"");
}

请注意 是[false] 不是false
因为前面应需要加了[]

这个是做的转json返回数据的接口 while循环那里若有优化的写法也请指教
现在就是因为这个 若不符合返回的会是[false] 试着用和false一样的方法去判断结果都不行
求教这里要怎么写
...全文
267 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amy安 2015-09-21
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
    $arrData =array();
    while ($$row = mysql_fetch_array($sql_notice))
    {
       $arrData[] = $row;
    }
    if($arrData) {
      Response::json(200,'success',$arrData);
    } 
.....
我不关心你的目的是什么,只关心你需要什么样的格式
受教了 感谢版主大大
Amy安 2015-09-21
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
    $arrData =array();
    while ($$row = mysql_fetch_array($sql_notice))
    {
       $arrData[] = $row;
    }
    if($arrData) {
      Response::json(200,'success',$arrData);
    } 
.....
我不关心你的目的是什么,只关心你需要什么样的格式
按我当前的模式 验证条件即是查询条件的话 判断自然是是否有数据了 我现在需要的是有就用json格式输出 返回200 成功 数据 如果没有 就返回 400 失败 ""
xuzuning 2015-09-21
  • 打赏
  • 举报
回复
    $arrData =array();
    while ($$row = mysql_fetch_array($sql_notice))
    {
       $arrData[] = $row;
    }
    if($arrData) {
      Response::json(200,'success',$arrData);
    } 
.....
我不关心你的目的是什么,只关心你需要什么样的格式
Amy安 2015-09-21
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
1、你需要得到什么?哪里出了问题? 2、Response::json 方法是怎么写的 3、while ($arrData[] = mysql_fetch_array($sql_notice)) 将会使 $arrData 数组的最后一个元素为 false
class Response {
	const JSON = "json";
	/**
	* 
	* @param integer $code 状态码
	* @param string $message 提示信息
	* @param array $data 数据
	* @param string $type 数据类型
	* return string
	*/
	public static function show($code, $message = '', $data = array(), $type = self::JSON) {
		if(!is_numeric($code)) {
			return '';
		}

		$type = isset($_GET['format']) ? $_GET['format'] : self::JSON;

		$result = array(
			'code' => $code,
			'message' => $message,
			'data' => $data,
		);

		if($type == 'json') {
			self::json($code, $message, $data);
			exit;
		}else{
			// TODO
		}
	}
	/**
	* 按json方式输出通信数据
	* @param integer $code 状态码
	* @param string $message 提示信息
	* @param array $data 数据
	* return string
	*/
	public static function json($code, $message = '', $data = array()) {
		
		if(!is_numeric($code)) {
			return '';
		}

		$result = array(
			'code' => $code,
			'message' => $message,
			'data' => $data
		);

		echo json_encode($result);
		exit;
	}

}
如果是while那句的写法有问题导致的话 求教怎么改
Amy安 2015-09-21
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
1、你需要得到什么?哪里出了问题? 2、Response::json 方法是怎么写的 3、while ($arrData[] = mysql_fetch_array($sql_notice)) 将会使 $arrData 数组的最后一个元素为 false
做一个APP接口返回json数据 数据库读出多条数据 也就是多个数组 遍历 转为json 返回给app端 现在请求验证通过的话数据都可以读出并以json呈现 但当请求没有通过验证致使读取的数据为空时,返回仍是200 成功 验证条件就是读取数据库的条件 不符合就读不到 然后判断数组为空就应该400 但是由于这个[false]不被视为空,所以结果会返回 200 成功 [false] 这样就不行了 应该这种情况下是400失败的
xuzuning 2015-09-21
  • 打赏
  • 举报
回复
1、你需要得到什么?哪里出了问题? 2、Response::json 方法是怎么写的 3、while ($arrData[] = mysql_fetch_array($sql_notice)) 将会使 $arrData 数组的最后一个元素为 false

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧