1. isset() 函数
isset(mixed $var, mixed $... = ?): bool
检测变量是否已设置并且非 **null**
2. empty() 函数
empty(mixed $var): bool
检查一个变量是否为空
判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于**false**,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
3. 分支语句— if
对于 分支语句 ,我们并不陌生,几乎每门语言中都会存在,只是在语法书写上有些区别,但是实际功能差别不大.
if 会先进行表达式布尔求值。如果 表达式 的值为 **true**,PHP 将执行 statement1,如果值为 **false** ——将忽略 statement2
格式一
<?phpif (expr){statement}?>
格式二
<?phpif (expr){statement 1}else{statement 2}?>
格式三
<?phpif (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,否则为 0echo 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);
