Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:继续
方法一:
<?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>
点击 "运行实例" 按钮查看在线实例