php数组-错误处理-时间函数

php 数组 错误处理 时间函数

数组

定义:就是一组数据的集合

元素:键 => 值

键:就是数组的下标

不能重复,如果重复,值会被覆盖

值:下标对应的值

值可以重复

声明

1
2
3
4
5
6
$arr = array(1,2,3);

$arr = [];

$arr[] = var1;
$arr[] = var2;

分类

索引数组

键是从0开始的数字

1
2
3
4
5
$arr = [
'tu be number 1',
'keep moving',
'never give up'
];

增加元素

1
$arr[] = 'just do it';

删除元素

1
unset($arr[$key]);

修改元素

1
$arr[$key] = $value;

必须指定已有的键

获取元素

1
var_dump($arr[$key]);

必须指定已有的键

关联数组

1
2
3
4
5
$arr = [
'key0' => 'value0',
'key1' => 'value1',
'key2' => 'value2'
];

注:增删改查和索引数组相同

多维数组

二维数组

1
2
3
4
5
6
7
8
9
$arr = [
'喝大力',
'买大力',
'卖大力' => [
'a' => 'b',
'c' => 'd'
],
'万万没想到他是来存钱的'
];

三维数组

1
2
3
4
5
6
7
8
9
10
11
12
$arr = [
'喝大力',
'买大力',
'卖大力' => [
'a' => 'b',
'c' => 'd',
'e' => [
'f' => 'g'
]
],
'万万没想到他是来存钱的'
];

多维数组

和二维数组、三维数组原理相同

数组遍历

for 循环遍历

for只适用于索引数组并且键是连续的

1
2
3
for ($i=0;$i<count($arr);$i++) {
$sum += $arr[$i];
}

foreach 循环遍历

1
2
3
4
5
6
7
foreach ($arr as $key => $value) {
$sum += $arr[$i];
}

foreach ($arr as $value) {
$sum += $arr[$i];
}

while 加 list 遍历

1
2
3
while (list($key , $value) = each($arr)) {
echo $key.'----'.$value.'<br />';
}

注:list只识别索引数组,each能够把数组
变成一个既有索引又有关联的数组,二者绝配

超全局数组

1
2
3
4
5
6
7
8
9
$_GET
$_POST
$_REQUEST
$_SERVER

$_COOKIE
$_SESSION
$_FILE
$GLOBALS

关于 $_SERVER

1、获取 ip 地址

1
REMOTE_ADDR

2、获取主机名

1
HTTP_HOST

3、获取浏览器信息

1
HTTP_USER_AGENT

4、获取端口号

1
SERVER_PORT

5、请求的协议

1
REQUEST_SCHEME

6、获取请求的方法

1
REQUEST_METHOD

7、获取请求的参数

1
QUERY_STRING

8、获取上级来源页

1
HTTP_REFERER

错误处理

错误分类

语法错误

运行错误

逻辑错误

配置文件抑制错误

生产坏境需要抑制错误,测试环境需要放开错误

php.ini

1
display_errors = On

改为

1
display_errors = Off

php代码修改php.ini

1
ini_set('display_errors') = 'Off';

获取php.ini

1
ini_get('display_errors');

另一种方式

1
2
3
error_reporting(0); //屏蔽错误

error_reporting(E_ALL); //显示错误

错误日志路径

1
error_log = 'wamp64/logs/php_error.log';

日期函数

返回时间戳

1
time();

格式化时间戳

1
date('Y-m-d H:i:s', time());

根据日期返回时间戳

1
mktime(12, 59, 59, 12, 31, 1997); //H,i,s,m,d,Y

验证一个日期

1
checkdate(12, 31, 1997); //m,d,Y

返回日期,以数组形式

1
getdate(time());

根据格式化后的日期字符串返回时间戳

1
strtotime('2018-4-9 9:20:50');

根据格式化后的日期字符串返回时间数组

1
date_parse("2006-12-12 10:00:00.5");

返回当前时间戳和微秒数

1
microtime();