php-8

回顾:

数组

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("您的密码输入错误,请您重新输入");
}

猜你喜欢

转载自blog.csdn.net/qingchurenxiaoyao/article/details/81568885