一段PHP不能输出汉字的代码,求各位解决
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
include("connect.php");
ini_set("date.timezone","Asia/Shanghai");
$d1=date("Y-m-d");
$query=mysql_query("select*from item where status<>'完成' order by date desc ");
while($now=mysql_fetch_array($query)){
$user= "<users>";
$user.=" <serial>";
$user.=$now['serial'];
$user.= "</serial>";
$user.=" <name>";
$user.=$now['name'];
$user.= "</name>";
$user.=" <dep>";
$user.=$now['dep'];
$user.= "</dep>";
$user.="<comtime>";
$usera=round((-strtotime($d1)+strtotime($now['completetime']))/3600/24);
if($usera<0){
$us="超期:"+abs($usera);
}
if(($usera>=0)&&($usera<=3)){
$us="即将到期:"+abs($usera);
}
if($usera>3){
$us="还有:"+abs($usera);
}
$user.="超期"+ $us;
$user.= "</comtime>";
$user.="<status>";
$user.=$now['status'];
$user.= "</status>";
$user.="<percent>";
$user.=$now['percent'];
$user.= "</percent>";
$user.="<creator>";
$user.=$now['creator'];
$user.= "</creator>";
$user.="<date>";
$user.=$now['date'];
$user.= "</date>";
$user.= "</users>";
echo $user;
}
?>
if($usera<0){
$us="超期:"+abs($usera);
}
if(($usera>=0)&&($usera<=3)){
$us="即将到期:"+abs($usera);
}
if($usera>3){
$us="还有:"+abs($usera);
}
$user.="超期"+ $us;
这段代码为什么只能输出$us的数字 而前面的汉字:超期 即将到期等不能输出?
[解决办法]
这不是 js ,字符串的连接应该使用. 而不是+
将里里面错误的地方都修改好,类似如下:
$us="即将到期:"+abs($usera);
修改成
$us="即将到期:".abs($usera);
[解决办法]
这和类型转换有关。+运算符是算数的事,结果会被强制类型转换为浮点数或整数,前面的字符串自然也就不会存在。php.net手册上有讲类型转换
正确的应该使用 "超期:". abs($usera);