批改状态:合格
老师批语:继续
方法一:
<?php
//声明一个数组,模拟提供的数组
$arr = [23,3,45,6,78,8,34];
//声明一个空数组,一会儿用来存放新的数组内容
$even = [];
//定义一个封装函数
function even($args)
{
//从全局变量获取定义好的控数组
global $even;
//用for循环遍历数组
for($i=0;$i<count($args);$i++)
{
//用对2取余的方法对数组里的元素进行偶数的判断
if($args[$i]%2 == 0)
{ //重新组装数组为新数组
array_push($even,$args[$i]);
}
}
//对数组进行输出
echo '<pre>';
print_r($even);
}
//调用函数
even($arr);
?>点击 "运行实例" 按钮查看在线实例
方法二:
<?php
//声明一个数组,模拟提供的数组
$arr = [23,3,45,6,78,8,34];
//声明一个空数组,一会儿用来存放新的数组内容
$even = [];
//定义一个封装函数
function even($args)
{
//从全局变量获取定义好的控数组
global $even;
//循环遍历数组为元素
foreach($args as $val)
{
//用对2取余的方法对数组里的元素进行偶数的判断
if($val%2 == 0)
{
//重新组装数组为新数组,等同于上面的array_push($even,$args[$i]);
$even[] = $val;
}
}
//对数组进行输出
echo '<pre>';
print_r($even);
}
//调用函数
even($arr);
?>点击 "运行实例" 按钮查看在线实例
这里需要注意一下,不要想当然的在重新组装数组后,在下面直接print_r($even)把内容输出出来,这里还是在循环中的,如果在if判断里就输出,那么会从开始检测到的第一个符合的值到最后一个符合条件的值,每一个都会输出一遍。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>计算器</title>
</head>
<body>
<?php
//显示除去 E_NOTICE 之外的所有错误信息
error_reporting(E_ALL & ~E_NOTICE);
//判断是否点击了提交按钮
if(isset($_POST["sub"])):
//判断是否在除法运算或者取余运算中有0作为被除数,这里如果if语句后面没有else,则可以后面直接跟if为true的内容
if($_POST["opt"] == "÷" && $_POST["num2"] == 0 || $_POST["opt"] == "取余" && $_POST["num2"] == 0) $mess = "<span style='color:red;'>除数不能为0</span>";
endif;
?>
<div>
<h1>计算器</h1>
<!-- form表单action为空默认是当前脚本 -->
<form action="" method="post">
<!-- 限定第一个输入框为数字,且必填,且提交后数值默认显示是上次点提交前输入的最后一个数字 -->
<input type="number" name="num1" required value="<?=$_POST["num1"]?>" id="num1">
<!-- 制作下拉框 -->
<select name="opt">
<!-- 对运算符进行设置 且提交后默认显示上次运算使用的运算符 -->
<option value="+" <?=$_POST["opt"] == "+" ? "selected" : ""?>>+</option>
<option value="-" <?=$_POST["opt"] == "-" ? "selected" : "" ?>>-</option>
<option value="×" <?=$_POST["opt"] == "×" ? "selected" : ""?>>×</option>
<option value="÷" <?=$_POST["opt"] == "÷" ? "selected" : ""?>>÷</option>
<option value="取余" <?=$_POST["opt"] == "取余" ? "selected" : ""?>>取余</option>
<option value="幂运算" <?=$_POST["opt"] == "幂运算" ? "selected" : ""?>>幂运算</option>
</select>
<!-- 限定第二个输入框为数字,且必填,且提交后数值默认显示是上次点提交前输入的最后一个数字 -->
<input type="number" name="num2" value="<?=$_POST["num2"]?>" id="num2">
<!-- 提交按钮 -->
<input type="submit" name="sub" value="计算">
</form>
</div>
<?php
//判断是否有报错信息且是否已经点击提交按钮
if(!$mess && isset($_POST["sub"])):
//如果是,则根据POST过来的不同运算符,进入switch循环,对POST提交的两个数字进行计算
switch($_POST["opt"]):
case "+":
$result = $_POST["num1"] + $_POST["num2"];
break;
case "-":
$result = $_POST["num1"] - $_POST["num2"];
break;
case "×":
$result = $_POST["num1"] * $_POST["num2"];
break;
case "÷":
$result = $_POST["num1"] / $_POST["num2"];
break;
case "取余":
$result = $_POST["num1"] % $_POST["num2"];
break;
case "幂运算":
$result = $_POST["num1"] ** $_POST["num2"];
break;
endswitch;
//把结果输出的内容进行组装
$res = "计算结果:{$_POST["num1"]}{$_POST["opt"]}{$_POST["num2"]}={$result}";
//因为幂运算是一个特殊形式,这里加个判断,如果不是幂运算,则正常输出,是幂运算则单独输出运算内容
if($_POST["opt"]!="幂运算"):echo "<span style='color:green;'>{$res}</span>";
else:echo "<span style='color:green;'>计算结果:{$_POST["num1"]}的{$_POST["num2"]}次方={$result}</span>";
endif;
else:
//否则如果有报错信息则输出报错信息
echo $mess;
endif;
?>
</body>
</html>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号