PHP练习
1.php四则计算器
<html>
<head>
<meta content="text/html; charset=utf8">
<title>PHP计算器</title>
</head>
<body>
<?php
if(isset($_POST["num1"]) && isset($_POST["num2"])){//有提交才执行,避免报错
if(empty($_POST["num1"])){
echo "操作数1不能为空";
unset($_POST["sub"]);//取消表单中的提交变量
}
if(empty($_POST["num2"])){
echo "操作数2不能为空";
unset($_POST["sub"]);
}
$oper=$_POST["oper"];//操作符
$num1=$_POST["num1"];//第一个操作数
$num2=$_POST["num2"];//第二个操作数
if($oper == "/"){
if($num2 == 0){
echo " '0' 不能作为除数使用";
unset($_POST["sub"]);
}
}
}
?>
<table border="1" align="center" width="400">
<form method="post">
<tr>
<td><input type="number" size="10" name="num1"></td>
<td>
<select name="oper">
<option value="+">+</option>
<option value="-" >-</option>
<option value="*" >*</option>
<option value="/" >/</option>
</select>
</td>
<td><input type="number" size="10" name="num2"></td>
<td><input type="submit" name="sub" value="计算"></td>
</tr>
<?php
/**通过表单传过来的$_POST["sub],判断是否单击了计算按钮
来决定以下计算是否执行以及是否输出计算结果**/
if(isset($_POST["sub"]) && !empty($_POST["sub"])){
$sum = 0; //声明一个存放计算结果的变量,初始值为0
switch($oper){
case "+":
$sum = $num1+$num2;
break;
case "-":
$sum = $num1-$num2;
break;
case "*":
$sum = $num1*$num2;
break;
case "/":
$sum = $num1/$num2;
break;
}
echo "<tr><td colspan='4' align='center'>";
echo "结果: $sum";
echo "</td></tr>";
}
?>
</form>
</table>
</body>
</html>
2.已知:公鸡5元一只,母鸡3元一只,小鸡一元3只。现用100元钱买了100只鸡,问:公鸡母鸡小鸡各几只?
<?php $num1 = 0;//公鸡数目 $num2 = 0;//母鸡数目 $num3 = 0;//小鸡数目 $money = 100;//总金额 $money2 = 0;//买完公鸡的剩余金额 $money3 = 0;//买完公鸡、母鸡的剩余金额 echo ("<p>可能出现的结果:</p>"); echo ("公鸡,母鸡,小鸡<br>"); for($num1 = 0;$num1<100;$num1++){ for($num2 = 0;$num2<100;$num2++){ $money2 = $money - $num1*5; $money3 = $money2 - $num2*3; $num3 = $money3*3; if($num3>=0){ echo ("$num1,$num2,$num3<br>"); } } }
3.写2个函数,分别可以求得两个正整数的最大公约数和最小公倍数。
提示:
最大公约数就是能够同时整除该两个数的最大的那个。比如24和36的最大公约数是12
最小公倍数就是能够同时被该两个数整除的最小的那个。比如24和36的最小公倍数是72
<?php function func($m,$n){ $x=2; $y=0; for($a = 1;$m>=$a;$a++){ if($m % $a == 0 && $n % $a == 0){ $x = $a; } } echo ("最大公约数是:$x<br/>"); for($b = $m * $n;$b > 0 && $b<=$m * $n;$b--){ if($b%$m == 0 && $b%$n == 0){ $y = $b; } } echo ("最小公倍数是:$y<br/>"); } if(isset($_POST["num1"]) && isset($_POST["num2"])){ func($_POST['num1'],$_POST['num2']); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>求最大公约数和最小公倍数</title> </head> <body> <form method="post"> <input type="number" value="第一个正整数" name="num1"> <input type="number" value="第二个正整数" name="num2"> <input type="submit" value="提交"> </form> </body>
4.写一个函数,该函数能够判断一个数字是否是一个素数(是就返回true,否则就返回false)。再利用该函数,输出2-200之间的所有素数。
<?php function func($num){//判断函数 $n = 0; //用于记录能被整除的个数 -- 计数 for($i = 1;$i <= $num; ++$i){ if($num % $i == 0){ $n++; } } if($n == 2){ echo ("true<br>"); }else{ echo ("false<br>"); } } function func2($num){//求值函数 $n = 0; //用于记录能被整除的个数 -- 计数 for($i = 1;$i <= $num; ++$i){ if($num % $i == 0){ $n++; } } if($n == 2){ echo ("$num<br>"); } } if( isset($_POST["num"]) ){ func($_POST['num']); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>求素数</title> </head> <body> <form method="post"> <input type="number" value="请输入一个数" name="num"> <input type="submit" value="提交"> <input type="submit" value="求2-200内所有素数" name="yes"> </form> <?php if( isset($_POST["yes"]) ){ for($number = 200;$number>1;$number--){ func2($number); } } ?> </body>
5.php利用循环输出表格形式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP输出表格</title>
</head>
<body>
<table>
<tr>
<?php
$trnum = 5; //表格的行数
$tdnum = 4 ; //表格的列数
$trend = $tdnum - 1; //表格换行
$tdwid = (int)(100 / $tdnum); //计算表格列的宽度
for ($i=1;$i<=$trnum;$i++) { //循环表格行
$k = $i * $tdnum - $trend ; //循环表格换行公式
$l = $i * $tdnum ; //循环表格列数公式
echo "<tr>"; //输出表格行开始
for ($j=$k;$j<=$l;$j++) { //循环表格列
echo "<td width='{$tdwid}%' >{$j}</td>"; //输出表格列
}
echo "</tr>"; //输出表格行结束
}
?>
</tr>
</table>
</body>
</html>
总结:主要练习了php相关的循环判断语句,以及form表单提交和函数的调用

浙公网安备 33010602011771号