php if条件判断数组返回[false]
程序员文章站
2022-04-03 17:41:18
...
{"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一样的方法去判断结果都不行
求教这里要怎么写
回复讨论(解决方案)
1、你需要得到什么?哪里出了问题?
2、Response::json 方法是怎么写的
3、while ($arrData[] = mysql_fetch_array($sql_notice)) 将会使 $arrData 数组的最后一个元素为 false
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失败的
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那句的写法有问题导致的话 求教怎么改
$arrData =array(); while ($$row = mysql_fetch_array($sql_notice)) { $arrData[] = $row; } if($arrData) { Response::json(200,'success',$arrData); } .....
我不关心你的目的是什么,只关心你需要什么样的格式
$arrData =array(); while ($$row = mysql_fetch_array($sql_notice)) { $arrData[] = $row; } if($arrData) { Response::json(200,'success',$arrData); } .....
我不关心你的目的是什么,只关心你需要什么样的格式
按我当前的模式 验证条件即是查询条件的话 判断自然是是否有数据了
我现在需要的是有就用json格式输出 返回200 成功 数据 如果没有 就返回 400 失败 ""
$arrData =array(); while ($$row = mysql_fetch_array($sql_notice)) { $arrData[] = $row; } if($arrData) { Response::json(200,'success',$arrData); } .....
我不关心你的目的是什么,只关心你需要什么样的格式
受教了 感谢版主大大
上一篇: php header怎么实现定时跳转
下一篇: php字符串怎么去掉某个字符
推荐阅读
-
php下判断数组中是否存在相同的值array_unique
-
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
-
PHP数组对比函数,存在交集则返回真,否则返回假
-
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
-
php使用gettimeofday函数返回当前时间并存放在关联数组里
-
php中判断数组是一维,二维,还是多维的解决方法
-
php中unserialize返回false的解决方法
-
php数组函数序列之array_search()- 按元素值返回键名
-
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
-
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值