目录
switch 语句 - 在若干条件之一成立时执行一个代码块(有选择地执行若干代码块之一)
遍历关联数组:遍历并打印关联数组中的所有值,可以使用 foreach 循环
1.条件语句
- if 语句 - 在条件成立时执行代码
<?php
$t=date("H"); //date() 函数用于格式化时间/日期。date("H")表示00-23(24小时格式)
if ($t<"20") //if (条件)--要加()
{
echo "Have a good day!";
}
else
{
echo "Have a good night!"; //注意if、else后没有冒号:
}
?>
注:date() 函数
用于格式化时间/日期
语法: date ( str($format) [, int $timestamp]);
参数 | 描述 |
---|---|
format | 必需。规定时间戳的格式。 |
timestamp | 可选。规定时间戳。默认是当前的日期和时间。 |
1)格式化日期(由参数format规定)
- d - 代表月中的天(01-31)
- m - 代表月(01-12)
- Y - 代表年(四位数)
<?php
echo date("Y/m/d") . "<br>"; //可在字母间插入其他字符,如“/”、“.”以增加附加格式
echo date("Y.m.d") . "<br>";
echo date("Y-m-d");
?>
上面代码的输出如下所示:
2016/10/21 2016.10.21 2016-10-21
format 字符 | 说明 | 返回值例子 |
---|---|---|
日 | --- | --- |
d | 月份中的第几天,有前导零的 2 位数字 | 01 到 31 |
D | 星期中的第几天,文本表示,3 个字母 | Mon 到 Sun |
j | 月份中的第几天,没有前导零 | 1 到 31 |
l("L"的小写字母) | 星期几,完整的文本格式 | Sunday 到 Saturday |
N | ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加) | 1(表示星期一)到 7(表示星期天) |
S | 每月天数后面的英文后缀,2 个字符 | st,nd,rd 或者 th。可以和 j 一起用 |
w | 星期中的第几天,数字表示 | 0(表示星期天)到 6(表示星期六) |
z | 年份中的第几天 | 0 到 365 |
星期 | --- | --- |
W | ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) | 例如:42(当年的第 42 周) |
月 | --- | --- |
F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
m | 数字表示的月份,有前导零 | 01 到 12 |
M | 三个字母缩写表示的月份 | Jan 到 Dec |
n | 数字表示的月份,没有前导零 | 1 到 12 |
t | 给定月份所应有的天数 | 28 到 31 |
年 | --- | --- |
L | 是否为闰年 | 如果是闰年为 1,否则为 0 |
o | ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加) | Examples: 1999 or 2003 |
Y | 4 位数字完整表示的年份 | 例如:1999 或 2003 |
y | 2 位数字表示的年份 | 例如:99 或 03 |
时间 | --- | --- |
a | 小写的上午和下午值 | am 或 pm |
A | 大写的上午和下午值 | AM 或 PM |
B | Swatch Internet 标准时 | 000 到 999 |
g | 小时,12 小时格式,没有前导零 | 1 到 12 |
G | 小时,24 小时格式,没有前导零 | 0 到 23 |
h | 小时,12 小时格式,有前导零 | 01 到 12 |
H | 小时,24 小时格式,有前导零 | 00 到 23 |
i | 有前导零的分钟数 | 00 到 59> |
s | 秒数,有前导零 | 00 到 59> |
u | 毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函数总是返回 000000 因为它只接受 integer 参数, 而 DateTime::format() 才支持毫秒。 | 示例: 654321 |
时区 | --- | --- |
e | 时区标识(PHP 5.1.0 新加) | 例如:UTC,GMT,Atlantic/Azores |
I | 是否为夏令时 | 如果是夏令时为 1,否则为 0 |
O | 与格林威治时间相差的小时数 | 例如:+0200 |
P | 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) | 例如:+02:00 |
T | 本机所在的时区 | 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如"Eastern Standard Time",中文版会显示"中国标准时间")。 |
Z | 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 | -43200 到 43200 |
完整的日期/时间 | --- | --- |
c | ISO 8601 格式的日期(PHP 5 新加) | 2004-02-12T15:19:21+00:00 |
r | RFC 822 格式的日期 | 例如:Thu, 21 Dec 2000 16:01:07 +0200 |
U | 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 | 参见 time() |
- if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
- if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块 elseif 相当于Python中的elif
-
switch 语句 - 在若干条件之一成立时执行一个代码块(有选择地执行若干代码块之一)
<?php
$favcolor="red";
switch ($favcolor) //switch(变量)
{
case "red":
echo "你喜欢的颜色是红色!"; //将变量的值与case中的值进行比较匹配,若相等则执行这一代码
break; //码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。
case "blue":
echo "你喜欢的颜色是蓝色!";
break;
case "green":
echo "你喜欢的颜色是绿色!";
break;
default: //default 语句用于不存在匹配(即没有 case 为真)时执行。(即相当于else)
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>
2.数组
数组是能够在单个变量中存储多个值的一种特殊变量
用array();创建数组
在 PHP 中,有三种类型的数组:
-
数值数组
- 带有数字 ID 键的数组(ID 键总是从 0 开始)
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
注: 1.
a . b | 并置 | 连接两个字符串 | "Hi" . "Ha" | HiHa |
2. count() 函数用于返回数组的长度(元素的数量)
如:count($cars)
3.遍历数值数组
遍历并打印数值数组中的所有值,使用 for 循环
注:for循环
for (初始值; 条件; 增量)
{
要执行的代码;
}
参数:
- 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
- 条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
- 增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
注释:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。
<?php
for ($i=1; $i<=5; $i++) //初始值为i=1,每运行一次,i就会增1
{
echo "数字为 " . $i . PHP_EOL; //PHP_EOF即换行
}
?>
数字为 1 数字为 2 数字为 3 数字为 4 数字为 5
-
关联数组
- 带有指定的键的数组,每个键关联一个值
变量=array("键"=>"值","键"=>"值","键"=>"值"(,....))
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
遍历关联数组:遍历并打印关联数组中的所有值,可以使用 foreach 循环
补:foreach循环
用于遍历数组
语法:
foreach ($array as $value) //注意没有“;” { 要执行代码; }
or
foreach ($array as $key => $value) { 要执行代码; }
<?php
$x=array("Google","Runoob","Taobao");
foreach ($x as $value)
/*每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,将看到数组中的下一个值。*/
{
echo $value . PHP_EOL;
}
?>
Google Runoob Taobao
<?php
$x=array(1=>"Google", 2=>"Runoob", 3=>"Taobao");
foreach ($x as $key => $value)
/*每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。*/
{
echo "key 为 " . $key . ",对应的 value 为 ". $value . PHP_EOL;
}
?>
key 为 1,对应的 value 为 Google key 为 2,对应的 value 为 Runoob key 为 3,对应的 value 为 Taobao
-
多维数组(较难,后续深究)
- 包含一个或多个数组的数组
在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。
一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组,依照这种方式,我们可以创建二维或者三维数组。
二维数组语法格式:
array ( array (elements...), // array (elements...), ... )
略
3.数组排序
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
<?php
$numbers=array(4,6,2,22,11);
sort($numbers); //对数组进行升序排列>>Array([0]=>2 [1]=>4 [2]=>6 [3]=>11 [4]=>22)
?>
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age); //根据关联数组的键对数组进行降序排列>>Array([Peter]=>35 [Joe]=>43 [Ben]=>37)
?> //这里的降序是对于26字母来说
Array函数(略)
4.超级全局变量(superglobals)
在一个脚本的全部作用域中都可用。 不需要特别说明,就可以在函数及类中使用。
1)$GLOBALS
是一个包含了全部变量的全局组合数组。变量的名字就是数组的键
2) $_SERVER
是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
3) $_REQUEST
用于收集HTML表单提交的数据
4) $_POST
用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
5) $_GET
用于收集表单数据,在HTML form标签的指定该属性:"method="get"。
$_GET 也可以收集URL中发送的数据。