Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:isset(),判断变量是否被定义,若变量存在,即使值(不)为NULL, 才返回true,其它情况下返回false, 请注意
strlen()
,统计字符串的长度trim() | ltrim() | rtrim()
,去除字符串两端的指定字符 | 去除左侧指定字符 | 去除右侧指定字符,不设置默认为空格;使用方式:trim(‘要操作的字符串’,’要去除的字符串’)
<?php
$str = '*Hello world!*';
echo strlen($str).'<br />';
echo trim($str,'*').'<br />';
echo ltrim($str,'*').'<br />';
echo rtrim($str,'*').'<br />';
count()
,计算数组的元素个数key()
, 返回当前指向元素的键名 current()
,返回当前指向元素的值next()
, 指向当前元素的指针移动到下一个元素的位置,返回当前元素的值prev()
,指向当前元素的指针移动到上一个元素的位置 reset()
, 把数组的内部指针指向第一个元素 end()
, 把数组的内部指针指向最后一个元素
<?php
$arr=[1,2,3,4,5];
echo count($arr).'<br />';
echo key($arr).'<br />';
echo current($arr).'<br />';
echo next($arr).'<br />';
echo prev($arr).'<br />';
echo reset($arr).'<br />';
echo end($arr).'<br />';
mt_rand()
,在区间之间生成一个随机数。参数有两个:最小值,最大值range()
, 创建一个包含指定范围的元素的数组 。参数: 数组的最低值 , 数组的最高值 ,数组元素之间的步值(可选)isset()
,判断变量是否被定义,若变量存在,即使值为NULL,也返回trueempty()
,判断变量是否有值,变量的值为NULL或为0时,返回true
<?php
echo '生成1~10之间的随机数:'.mt_rand(1,10).'<br />';
echo '生成1~10之间的数组:'.'<br />';
var_dump(range(1,10));
$name;
echo isset($name).'<br />';
echo empty($name).'<br />';
for (初始化循环计数器的值; 循环条件; 更新循环计数器的值) {
代码块
}
<?php
for($i=1;$i<=5;$i++){
echo '当前是第'.$i.'次循环<br />';
}
echo '<hr />';
//for循环索引素组
$arr=[1,2,3,4];
for($i=0;$i<count($arr);$i++){
echo '第'.$i.'个元素的值是'.$arr[$i].'<br />';
}
echo '<hr />';
//for循环关联数组
$arr2=['name'=>'Lin','sex'=>'女','age'=>25];
for($i=0;$i<count($arr2);$i++){
echo key($arr2).'的值是'.current($arr2).'<br />';
next($arr2);
}
while
先判断是否符合条件,再执行代码块。do..while
先执行再判断,至少执行一次。
while (循环条件) {
代码块
}
do {
代码块
} while (循环条件);
<?php
$a=0;
while($a>0){
echo '当前是第'.$a.'次循环<br />';
$a++;//等同于$a=$a+1
}
echo '<hr />';
$b=0;
do{
echo '当前是第'.$b.'次循环<br />';
}while($b>0);
echo '<hr />';
//while循环索引素组
$arr=[1,2,3,4];
$index=0;
while($index<count($arr)){
echo '第'.$index.'个元素的值是'.$arr[$index].'<br />';
$index++;
}
echo '<hr />';
//while循环关联数组
$index=0;
$arr2=['name'=>'Lin','sex'=>'女','age'=>25];
while($index<count($arr2)){
echo key($arr2).'的值是'.current($arr2).'<br />';
next($arr2);
$index++;
}
(表达式1 | 变量) ? (表达式2 | 变量) : (表达式3 | 变量)
,表达式1为true时,结果为表达式2,否则结果为表达式3(表达式1 | 变量) ? :(表达式2 | 变量)
,当表达式1结果为true时,结果为表达式1,否则为表达式2.该语法PHP5.3及以上版本支持(表达式1 | 变量) ? ?(表达式2 | 变量)
,当表达式1结果为true时,结果为表达式1,否则为表达式2.该语法PHP7及以上版本支持
示例与运行结果:
<?php
$a = 1;
echo isset($a)?$a:0;
echo '<br />';
echo $a??0;
echo '<br />';
echo $a?:0;
$_POST
, 预定义变量,用于收集post提交方式 的表单中的值 $_GET
, 预定义变量,用于收集get提交方式 的表单中的值 $_REQUEST
, 预定义变量,可以收集post与get两种提交方式的表单中的值
示例与运行结果:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PHP表单验证</title>
<style>
form{
width: 400px;
height: 200px;
background-color: #0cbadf;
border-radius: 5px;
text-align: center;
margin: auto;
}
form > div{
display: grid;
grid-template-columns: 100px 200px;
margin: 20px 0;
grid-column-gap:10px;
}
form > div > label{
text-align: right;
}
form > div > input{
border-radius: 5px;
}
</style>
</head>
<body>
<form action="index.php" method="post">
<h3>用户登录</h3>
<div>
<label for="username">用户名</label>
<input type="text" name="username" id="username" required autofocus>
</div>
<div>
<label for="password">密码</label>
<input type="password" name="password" id="password" required autofocus>
</div>
<input type="submit" value="登录">
</form>
</body>
</html>
<?php
$username=$_POST['username'];
$password=$_POST['password'];
if(empty($username)){
echo "<script>alert('请输入用户名');</script>";
exit;
}elseif(strlen($username)>20){
echo "<script>alert('用户名长度不得超过20个字符');</script>";
exit;
}
if(empty($password)){
echo "<script>alert('请输入密码');</script>";
exit;
}elseif(strlen($password)<6 || strlen($password)>18){
echo "<script>alert('密码长度在6~18个字符之间');</script>";
exit;
}
echo '登陆成功!欢迎你,'.$username;