ThinkPHP项目中提示信息与解决方案
上一个ThinkPHP项目做完了,就在查看一些提示信息,提高ThinkPHP运行速度!
问题一:
Notice: A non well formed numeric value encountered in 。。。
解答:
//$date查询出的时间
echo date('Y-m-d',strtotime($date));
参考资料:
资料1.
A non well formed numeric value encountered 原因
时间戳不是真正的int类型,这种经常出现在从数据库中提取出数据,但是数据不是int类型的,可能是varchar等等,这种问题常常出现在弱类型语言上!大家可以使用intval()函数将非格式良好的数据转换成良好的类型,这样就可以了!
问题二:
求百分比:
function percent($p, $t){
if ($t != 0){
return round( $p/$t * 100 , 2) . "%";
}
}
Division by zero 如何解决
解决:判断一下 $total 是不是为0呗
问题三:
in_array() expects parameter 2 to be array, string given
一般是in_array($str, $array)是$array没有值造成的,将
If( !isset($array)){
$array = array();
}
问题解决
问题四:
Warning: Invalid argument supplied for foreach()
问题Warning: Invalid argument supplied for foreach() in 完善解决方案
将报错的语句做如下修改(例):
把
QUOTE:
foreach($extcredits as $id => $credit)
{
if($credit['ratio'])
{
$exchcredits[$id] = $credit;
}
}
改为
QUOTE:
if(is_array($extcredits)) //add
{
foreach($extcredits as $id => $credit)
{
if($credit['ratio'])
{
$exchcredits[$id] = $credit;
}
}
} //add
或
QUOTE:
foreach((array)$extcredits as $id => $credit)
{
if($credit['ratio'])
{
$exchcredits[$id] = $credit;
}
}
造成这个错误的原因多数是因为论坛升级、编码转换造成的!
如果对PHP熟悉的人,可以直接找到出错的地方,分析出错信息是对哪个数据库表操作时造成的(一般都是论坛的基本数据表),然后,找到相应表的原版数据导进去,问题可解决。
问题五:
Declaration of CreditAction::index() should be compatible with that of BaseAction::index() CreditAction.class.php
http://hi.baidu.com/wastorode/item/c31df4ebfb6be73186d9def9
http://www.cnblogs.com/firstdream/archive/2012/03/30/2424939.html
因为所带参数不一样引起的!