>  기사  >  백엔드 개발  >  php if条件判断数组返回[false]

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

WBOY
WBOY원래의
2016-06-20 12:48:111307검색

{"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);    } .....

我不关心你的目的是什么,只关心你需要什么样的格式



受教了 感谢版主大大
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.