1. isset() 函数
isset(mixed $var, mixed $... = ?): bool
检测变量是否已设置并且非 **null**
2. empty() 函数
empty(mixed $var): bool
检查一个变量是否为空
判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于**false**
,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
3. 分支语句— if
对于 分支语句 ,我们并不陌生,几乎每门语言中都会存在,只是在语法书写上有些区别,但是实际功能差别不大.
if 会先进行表达式布尔求值。如果 表达式 的值为 **true**
,PHP 将执行 statement1,如果值为 **false**
——将忽略 statement2
格式一
<?php
if (expr){
statement
}
?>
格式二
<?php
if (expr){
statement 1
}else{
statement 2
}
?>
格式三
<?php
if (expr1){
statement 1
}else if (expr 2){
statement 2
}else if (expr3){
statement 3
}
...
else {
statement N
}
?>
练习
- 表单提交用户名和密码,判断是否为用户 tom, 密码是否为123,如果是显示登陆成功,否则显示用户名密码错误
- 改进上面的练习, 先判断用户名是否正确,给出用户提示,如果用户名正确,再判断密码是否正确,密码正确提示登陆成功,否则提示密码不正确.
index.html
<!DOCTYPE html>
<html lang="en">
<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>Document</title>
</head>
<body>
<form action="test.php" method="get">
<p>姓名: <input type="text" name="username" id="n"></p>
<p>密码: <input type="password" name="passwd" id="p"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
test.php
// 练习一
<?php
// 向客户端发送响应头信息
header("Content-Type:text/html;charset=utf-8");
// 获取客户端提交的查询参数数据
$username = $_REQUEST["username"];
$passwd = $_REQUEST["passwd"];
// 判断用户名和密码
if($username === "tom" && $passwd === "123"){
echo "登陆成功";
}else{
echo "用户名密码错误";
}
?>
test.php
// 练习二
<?php
// 向客户端发送响应头信息
header("Content-Type:text/html;charset=utf-8");
// 获取客户端提交的查询参数数据
$username = $_REQUEST["username"];
$passwd = $_REQUEST["passwd"];
// 判断用户名和密码
if($username === "tom"){
if($passwd === "123"){
echo "登陆成功";
}else{
echo "密码不正确";
}
}else{
echo "用户名不存在";
}
?>
4. 分支语句— switch-case
switch(表达式){
case 结果1:
相关代码1;
break;
case 结果2:
相关代码2;
break;
……
case 结果n:
相关代码n;
break;
default:
默认代码;
}
如果 “表达式” 的值等于 “结果1” ,则执行 “相关代码1”;
否则如果 “表达式” 的值等于 “结果2” ,则执行 ”相关代码2” ,往后以此类推。
另外,如果 ”表达式” 的值与所有 case 的值都不能匹配,则执行 default 的 “默认代码” 。
5. time()
time(): int
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
echo time();
6. getdate()
getdate(int $timestamp = time()): array
返回一个根据 timestamp
得出的包含有日期信息的关联数组 array。
如果没有给出时间戳则认为是当前本地时间。
可选的 timestamp
参数是一个 int 的 Unix 时间戳,如未指定或是 **null**
,参数值默认为当前本地时间。也就是说,其值默认为 time() 的返回值。
返回一个根据 timestamp
得出的包含有日期信息的关联数组 array。 返回的关联数组中的键名单元有以下几个:
键名 | 说明 | 返回值例子 |
---|---|---|
"seconds" |
秒的数字表示 | 0 到 59 |
"minutes" |
分钟的数字表示 | 0 到 59 |
"hours" |
小时的数字表示 | 0 到 23 |
"mday" |
月份中第几天的数字表示 | 1 到 31 |
"wday" |
星期中第几天的数字表示 | 0 (周日) 到 6 (周六) |
"mon" |
月份的数字表示 | 1 到 12 |
"year" |
4 位数字表示的完整年份 | 比如: 1999 或 2003 |
"yday" |
一年中第几天的数字表示 | 0 到 365 |
"weekday" |
星期几的完整文本表示 | Sunday 到 Saturday |
"month" |
月份的完整文本表示,比如 January 或 March | January 到 December |
0 |
自从 Unix 纪元开始至今的秒数,和 time() 的返回值以及用于 date() 的值类似。 |
系统相关,典型值为从 -2147483648 到 2147483647 。 |
$cd = getdate();
foreach ($cd as $key => $value) {
echo $key . "-->" . $value . "<br>";
}
7. date()
date(string $format, int $timestamp = ?): string
格式化一个本地时间/日期
返回将整数 timestamp
按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。
常用日期格式字符:
格式字符 | 说明 | 返回值 |
---|---|---|
Y | 4位数表示的年份 | 例如:1999或2020 |
y | 2位数表示的年份 | 例如:99或20 |
m | 数字表示的月份,有前导零 | 例如:01或12 |
M | 三个字母缩写表示的月份 | 例如:Jan或Dec |
d | 月份中的第几天,有前导零 | 例如:01或31 |
j | 月份中的第几天,没有前导零 | 例如:1或31 |
w | 星期中的第几天 | 例如:0(表示星期天)或6(表示星期六) |
H | 小时,24小时格式,有前导零 | 例如:00中23 |
h | 小时,12小时格式,有前导零 | 例如:01或12 |
G | 小时,24小时格式,没有前导零 | 例如:0或23 |
g | 小时,12小时格式,没有前导零 | 例如:1或12 |
i | 分钟,有前导零 | 例如:00或59 |
s | 秒数,有前导零 | 例如:00或59 |
// 年-月-日
echo date("y-m-d");
echo "<br>";
echo date("Y-m-d");
echo "<br>";
// 年/月/日
echo date("Y/m/d");
echo "<br>";
// xx年xx月xx日
echo date("Y年m月d日");
echo "<br>";
// 时:分:秒
echo date("h:i:s");
echo "<br>";
echo date("H:i:s");
echo "<br>";
// 年月日 时分秒
echo date("Y/m/d H:i:s");
echo "<br>";
// L 是否为闰年 ,如果是闰年为 1,否则为 0
echo date("Y-m-d -> L");
8. date_default_timezone_get()
date_default_timezone_get(): string
取得一个脚本中所有日期时间函数所使用的默认时区
9. date_default_timezone_set()
date_default_timezone_set(string $timezone_identifier): bool
设定用于一个脚本中所有日期时间函数的默认时区
echo date_default_timezone_get();
// 格林尼治时间
date_default_timezone_set("UTC");
echo "<br>";
echo date_default_timezone_get();
// 亚洲/上海时区
date_default_timezone_set("Asia/Shanghai");
echo "<br>";
echo date_default_timezone_get();
echo "<br>";
// PRC the People's Republic of China 中华人民共和国 (可认为是北京时间)
date_default_timezone_set("PRC");
echo "<br>";
echo date_default_timezone_get();
10. strtotime()
strtotime(string $datetime, int $now = time()): int
将任何字符串的日期时间描述解析为 Unix 时间戳
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
// 今天的时间
echo date("Y-m-d H:i:s");
echo "<br>";
$t = "+1 day";
$time = strtotime($t);
// 明天的这个时间
echo date("Y-m-d H:i:s", $time);