1. isset() 函数

  1. isset(mixed $var, mixed $... = ?): bool

检测变量是否已设置并且非 **null**

2. empty() 函数

  1. empty(mixed $var): bool

检查一个变量是否为空

判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于**false**,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

3. 分支语句— if

对于 分支语句 ,我们并不陌生,几乎每门语言中都会存在,只是在语法书写上有些区别,但是实际功能差别不大.

if 会先进行表达式布尔求值。如果 表达式 的值为 **true**,PHP 将执行 statement1,如果值为 **false** ——将忽略 statement2

  • 格式一

    1. <?php
    2. if (expr){
    3. statement
    4. }
    5. ?>
  • 格式二

    1. <?php
    2. if (expr){
    3. statement 1
    4. }else{
    5. statement 2
    6. }
    7. ?>
  • 格式三

    1. <?php
    2. if (expr1){
    3. statement 1
    4. }else if (expr 2){
    5. statement 2
    6. }else if (expr3){
    7. statement 3
    8. }
    9. ...
    10. else {
    11. statement N
    12. }
    13. ?>
  • 练习

    1. 表单提交用户名和密码,判断是否为用户 tom, 密码是否为123,如果是显示登陆成功,否则显示用户名密码错误
    2. 改进上面的练习, 先判断用户名是否正确,给出用户提示,如果用户名正确,再判断密码是否正确,密码正确提示登陆成功,否则提示密码不正确.
    • index.html

      1. <!DOCTYPE html>
      2. <html lang="en">
      3. <head>
      4. <meta charset="UTF-8">
      5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
      6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
      7. <title>Document</title>
      8. </head>
      9. <body>
      10. <form action="test.php" method="get">
      11. <p>姓名: <input type="text" name="username" id="n"></p>
      12. <p>密码: <input type="password" name="passwd" id="p"></p>
      13. <p><input type="submit" value="提交"></p>
      14. </form>
      15. </body>
      16. </html>
    • test.php

      1. // 练习一
      2. <?php
      3. // 向客户端发送响应头信息
      4. header("Content-Type:text/html;charset=utf-8");
      5. // 获取客户端提交的查询参数数据
      6. $username = $_REQUEST["username"];
      7. $passwd = $_REQUEST["passwd"];
      8. // 判断用户名和密码
      9. if($username === "tom" && $passwd === "123"){
      10. echo "登陆成功";
      11. }else{
      12. echo "用户名密码错误";
      13. }
      14. ?>
    • test.php

      1. // 练习二
      2. <?php
      3. // 向客户端发送响应头信息
      4. header("Content-Type:text/html;charset=utf-8");
      5. // 获取客户端提交的查询参数数据
      6. $username = $_REQUEST["username"];
      7. $passwd = $_REQUEST["passwd"];
      8. // 判断用户名和密码
      9. if($username === "tom"){
      10. if($passwd === "123"){
      11. echo "登陆成功";
      12. }else{
      13. echo "密码不正确";
      14. }
      15. }else{
      16. echo "用户名不存在";
      17. }
      18. ?>

4. 分支语句— switch-case

  1. switch(表达式){
  2. case 结果1:
  3. 相关代码1;
  4. break;
  5. case 结果2:
  6. 相关代码2;
  7. break;
  8. ……
  9. case 结果n:
  10. 相关代码n;
  11. break;
  12. default:
  13. 默认代码;
  14. }

如果 “表达式” 的值等于 “结果1” ,则执行 “相关代码1”;

否则如果 “表达式” 的值等于 “结果2” ,则执行 ”相关代码2” ,往后以此类推。

另外,如果 ”表达式” 的值与所有 case 的值都不能匹配,则执行 default 的 “默认代码” 。

5. time()

  1. time(): int

返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。

  1. echo time();

6. getdate()

  1. 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
  1. $cd = getdate();
  2. foreach ($cd as $key => $value) {
  3. echo $key . "-->" . $value . "<br>";
  4. }

7. date()

  1. 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
  1. // 年-月-日
  2. echo date("y-m-d");
  3. echo "<br>";
  4. echo date("Y-m-d");
  5. echo "<br>";
  6. // 年/月/日
  7. echo date("Y/m/d");
  8. echo "<br>";
  9. // xx年xx月xx日
  10. echo date("Y年m月d日");
  11. echo "<br>";
  12. // 时:分:秒
  13. echo date("h:i:s");
  14. echo "<br>";
  15. echo date("H:i:s");
  16. echo "<br>";
  17. // 年月日 时分秒
  18. echo date("Y/m/d H:i:s");
  19. echo "<br>";
  20. // L 是否为闰年 ,如果是闰年为 1,否则为 0
  21. echo date("Y-m-d -> L");

8. date_default_timezone_get()

  1. date_default_timezone_get(): string

取得一个脚本中所有日期时间函数所使用的默认时区

9. date_default_timezone_set()

  1. date_default_timezone_set(string $timezone_identifier): bool

设定用于一个脚本中所有日期时间函数的默认时区

  1. echo date_default_timezone_get();
  2. // 格林尼治时间
  3. date_default_timezone_set("UTC");
  4. echo "<br>";
  5. echo date_default_timezone_get();
  6. // 亚洲/上海时区
  7. date_default_timezone_set("Asia/Shanghai");
  8. echo "<br>";
  9. echo date_default_timezone_get();
  10. echo "<br>";
  11. // PRC the People's Republic of China 中华人民共和国 (可认为是北京时间)
  12. date_default_timezone_set("PRC");
  13. echo "<br>";
  14. echo date_default_timezone_get();

10. strtotime()

  1. strtotime(string $datetime, int $now = time()): int

将任何字符串的日期时间描述解析为 Unix 时间戳

  1. echo strtotime("now"), "\n";
  2. echo strtotime("10 September 2000"), "\n";
  3. echo strtotime("+1 day"), "\n";
  4. echo strtotime("+1 week"), "\n";
  5. echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
  6. echo strtotime("next Thursday"), "\n";
  7. echo strtotime("last Monday"), "\n";
  8. // 今天的时间
  9. echo date("Y-m-d H:i:s");
  10. echo "<br>";
  11. $t = "+1 day";
  12. $time = strtotime($t);
  13. // 明天的这个时间
  14. echo date("Y-m-d H:i:s", $time);