当前位置:编程学习 > php >>

为什么下面这个php程序算不出来数

<?php error_reporting(0); $sheji=$_POST['sheji']; $yinshuafangshi=$_POST['yinshuafangshi']; $chicun=$_POST['chicun']; $zhizhang=$_POST['zhizhang']; $yinshu=$_POST['yinshu']; $houjiagong=$_POST['houjiagong']; $jiaofushijian=$_POST['jiaofushijian']; function h($sheji,$yinshuafangshi,$chicun,$zhizhang,$yinshu,$houjiagong,$jiaofushijian) { $a=0.04; $b=$yeshu*0.5*$yinshu/$chicun; $e=$c/500; if (is_float($b)) { ++$b; $c=(int)($b); //强制转换整型 } else { $c=$b; } if ($c<500) { $d=1; } else { if (is_float($e)) //判断符点型 { ++$e; $d=(int)($e); //强制转换整型 } else { $d=$e; } } if ($houjiagong=="1") { $z=($c*1.1*$zhizhang+$sheji+$yinshuafangshi+$yinshu*$a)*(1+$jiaofushijian); } if ($houjiagong=="2") { $z=($c*1.1*$zhizhang+$sheji+$yinshuafangshi+$d*2)*(1+$jiaofushijian); } if ($houjiagong=="1"&&$houjiagong=="2") { $z=($c*1.1*$zhizhang+$sheji+$yinshuafangshi+$d*2+$yinshu*$a)*(1+$jiaofushijian); } return $z; } echo '<table border=1 cellspacing=0 cellspading=0 align=center>'; echo '<tr>'; echo '<td>'.'<font color=black>'."印刷价格:".h($sheji,$yinshuafangshi,$chicun,$zhizhang,$yinshu,$houjiagong,$jiaofushijian).'</font>'.'</td>'; echo '</tr>'; echo '</table>'; ?>
追问:
        	
				
那个缺定义的我改了,但是为什么定义要写成那个样子呢?
修改成那样子,只是为了测试,目的是每个环节逐步查找可能出错的环节,也就是故障定位。

$sheji = 1;   //$_POST['sheji'];

这样写就是直接定义数据,而排除了上个步骤(数据传递)的影响,这样就可以进一步的错误定位。

如果最终确定是数据传递环节出错了,那么就需要检查上个页面的代码,解决后,可以把这些再恢复过来。

$sheji = 1;   //$_POST['sheji'];  ==》 $sheji = $_POST['sheji'];
答案:由于业务逻辑不懂,所以运算不好修改,但如果仅仅是“php程序算不出来数”这样的问题,据我的测试,应该是你传递过来的参数有错误:

你可以把代码中相应代码修改如下:

$sheji = 1;//$_POST['sheji'];
$yinshuafangshi = 1;//$_POST['yinshuafangshi'];
$chicun = 1;//$_POST['chicun'];
$zhizhang = 1;//$_POST['zhizhang'];
$yinshu = 1;//$_POST['yinshu'];
$houjiagong = '1';//$_POST['houjiagong'];
$jiaofushijian = 1;//$_POST['jiaofushijian'];

运行结果为: 印刷价格:6.28

顺便提一句:

$b = $yeshu * 0.5 * $yinshu / $chicun;

这一句代码中的 $yeshu 我没有在代码中发现定义的地方。

上一个:三年的php程序员应该还要学点什么?
下一个:有PHP程序做的在线客服系统吗?收费的也行

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,