回顾:
数组
1.
PHP5.4 -》$arr=array();
php7.0 -》$arr=[];
以上两种方式都可以用
2.数组分类
一维数组:
$arr=[1,2,3,4,5];
$arr=['a'=>'b','c'=>'d'];
二维数组:
$arr=['a'=>[
]];
三维数组---多维数组
$arr=[[[ ]]];
索引数组:下标从0开始,中间不能出现任何字符串的下标
$arr=['a','d','b','c'];
关联数组:
$arr=['a','b'=>'d','c'] //注意:a的下标是0.c的下标是1,d的下标是b
count() 获取数组元素的总个数,通常和for循环用在一起
foreach($arr as $key=>$value){
}
foreach($arr as $value){}
数组取值 echo $arr[下标]
删除 unset()
添加 $arr[]=' ';
function ha() use(变量名){ }
global 里面变 ,外面也变
$GLOBALS['变量名'];函数里面变,函数外面不变
func_get_args() 获取函数所有实参
func_get_arg() 获取某个实参
func_num_args() 获取实参个数
文件包含:
include,require,include_once ,require_once四个的区别
include是包含,如果程序执行到这行没有找到文件会出现警告,但会继续执行
include_once和include是一样的,如果该文件中的代码已经被包括了,则不会再次包括,
确保它只被包括一次,以避免函数重定义以及变量重新赋值等问题。
require是引用资源,如果资源文件没找到,程序会出出现致命错误,并且终止执行
require_once的意思和require是一样的,如果该文件中的代码已经被包括了,则不会再次包括,
确保它只被包括一次,以避免函数重定义以及变量重新赋值等问题。
var_dump,print_r,print,echo 的区别:
1.echo和print的区别:
共同点:首先echo和print都不是严格意义上的函数,他们都是语言结构,
他们都只输出字符串,整型,浮点型,不能打印复合型和资源型数据
区别是:echo 可以连续输出多个变量,而print只能输出一个变量,print打印
的值能直接赋值给一个变量如:$a=print "123";
而echo不可以,他没有像函数的行为,所以不能用于函数的上下文。在使用时,echo()函数比print()较快
解析:echo()和print()
相同点:都只输出字符串,整型,浮点型,不能答应复合型数据
不同点:echo()比print()速度稍快,print打印的值能直接赋值给一个变量,而echo不可以。
var_dump()和print_r()的区别:
http://www.debugease.com/phpbase/597045.html
共同点:两者都可以打印数组,对象之类的复合型变量
区别:print_r()只能打印一些易于理解的信息,并且print_r()在打印数组时,会把数组的指针移到最右边
使用reset()可以让指针回到开始处,而var_dump()不但能打印复合类型数据,还能打印资源类型的变量
且var_dump()输出信息比较详细,一般调试时用的多。
解析:var_dump()和print_r()
相同点:都可以打印数组,对象之类的复合型变量
不同点:var_dump()输出信息比print_r()详细,多用于调试
问题:print_r()打印数组时,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处
问题2:print_r()函数,返回值问题
$t=print_r($arr,true);
$return 如果设为 true 才有返回值
一级目录:
common
config
mysql
index.php
list只适用于数字索引的数组,在一次操作中给一组变量赋值:
$arr=[1,3,'y',6,7,8];
list($value1,$value2,$value3,$v4)=$arr;
$my_array = array("Dog","Cat","Horse");
list($a, , $c)
= $my_array;
$c的值为Horse
,,,,代表占位
each :
each() 函数返回当前元素的键名和键值,并将内部指针向前移动。
该元素的键名和键值会被返回带有四个元素的数组中。两个元素(1 和 Value)包含键值,两个元素(0 和 Key)包含键名
each返回既有索引又有关联的一维数组
echo 既适用于索引,又适用于关联数组
写一次,读一次
$arr=[
'演员'=>'胡歌',
'歌手'=>'薛之谦',
'相声'=>'岳云鹏'
];
var_dump(each($arr));
//执行结果
array (size=4)
1 => string '胡歌' (length=6)
'value' => string '胡歌' (length=6)
0 => string '演员' (length=6)
'key' => string '演员' (length=6)
list($a,$b)=each($arr);
//执行结果
array (size=4)
1 => string '薛之谦' (length=9)
'value' => string '薛之谦' (length=9)
0 => string '歌手' (length=6)
'key' => string '歌手' (length=6)
当循环到最后的时候,返回false
超全局变量:
$_GET
$_POST
$_REQUEST
$_SESSION
$_COOKIES
$_FILES
$_SERVER
$GLOBALS
知道get,post,request三者的区别:
$_GET, 通过URL地址传递参数,相对于post来说不安全,因为是明文
$_REQUEST 可以接收get方式提交,可以接受post方式提交,
建议:用什么方式提交就用什么方式接收
get和post的区别
如果你前端用get方式,那么你后台接收数据的时候必须用$_GET,get是通过URL地址传参是明文
如果你是post提交方式,那么你就必须接收的时候用$_POST post是header头传参
注册:
就是插入数据库数据
登录:
就是查询数据库与表单提交过来的值进行对比
md5:
加密,返回一个32位的字符串
获取ip地址:
$_SERVER['REMOTE_ADDR'];
https://blog.csdn.net/u013732204/article/details/53301421
unix时间戳:
time:必会
data("Y-m-d H:i:s",time());
echo date('Y/m/d/h/i/s'); 返回带有时间的文件夹结构
设置中国时区问题:必会
date_default_timezone_set('PRC');
注意:这个只能是局部文件生效
可以通过PHP.ini去修改配置文件(全局生效)
【mktime】(了解)
mktime(15 , 35 , 0 , 8 , 10 ,2018);
小时 分钟 秒 月 日 年
解释:根据你的时间格式 返回 对应的时间戳
【checkdate】(了解)
checkdate(月 ,日 年)
解释:检测是否是正确的时间区间
【getdate】(了解)
getdate(time())
array (size=11)
'seconds' => int 42
'minutes' => int 42
'hours' => int 7
'mday' => int 10
'wday' => int 5
'mon' => int 8
'year' => int 2018
'yday' => int 221
'weekday' => string 'Friday' (length=6)
'month' => string 'August' (length=6)
0 => int 1533886962
根据时间戳以数组的形式返回对应的值
【strtotime】(了解)
strtotime('10 August 2018');
根据英文格式 返回对应的时间戳
【date_parse】(了解)
print_r(date_parse("2006-12-12 10:00:00.5"));
Array
(
[year] => 2006
[month] => 12
[day] => 12
[hour] => 10
[minute] => 0
[second] => 0
[fraction] => 0.5
[warning_count] => 0
[warnings] => Array
(
)
[error_count] => 0
[errors] => Array
(
)
[is_localtime] =>
index.php
<?php
echo '这是首页';
define('web_site',str_replace('\\','/',__DIR__).'/');
include 'common/common.php';
echo web_site;
echo $config;
echo $mysql;
common/common.php
<?php
if(true){
echo '没登录,跳转把';
echo '<meta http-equiv="refresh" content="3;url=http://www.baidu.com"/>;
}
include web_site.'config/config.php';
include web_site.'mysql/mysql.php';
config/config.php
<?php
$config='config';
mysql/mysql.php
<?php
$mysql='mysql';
register.html
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>这是注册页面</title>
</head>
<body>
<form action="register.php" method="get">
用户名:<input type="text" name="username" value="" /><br />
密码:<input type="password" name="pwd" value="" /><br />
重复密码:<input type="password" name="repwd" value="" /><br />
<input type="submit" value="注册" />
</form>
</body>
</html>
register.php
<?php
$username=md5(trim($_GET['username']));
$pwd=md5(trim($_GET['pwd']));
$repwd=md5(trim($_GET['repwd']));
if($pwd!=$repwd){
echo '<meta http-equiv="refresh" content="3;url=register.html"/>
eixt("您的密码输入错误,请您重新输入");
}