20180821 PHP环境下 数组 函数

Posted 世界上最好的语言-PHP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20180821 PHP环境下 数组 函数相关的知识,希望对你有一定的参考价值。

数组基础

数组长度 count($attr);

For($i = 0;$i<count($attr);$i++)

Foreach(){ }

数组基础

php中,数组的下标可以是整数,或字符串。

php中,数组的元素顺序不是由下标决定,而是由其“加入”的顺序决定。

 

定义:
$arr1 = array(元素1,元素2,。。。。。 );

 

array(1,  5,  1.1,  “abc”,  true,  false); //可以存储任何数据,此时为“默认下标”,

 

array(2=>1,  5=>5,  3=>1.1,  7=>“abc”,  0=>true);//下标可以任意设定(无需顺序,无需连续)

 

array(2=>1,  5,  1=>1.1,  “abc”,  0=>true)//可以加下标,也可以不加(默认下标),下标分别是:2,3,1,4,0

 

//默认下标规则:前面已经用过的最大数字下标+1

 

array(2=>1,  ‘dd’=>5,  1=>1.1,  “abc”,  0=>true)//混合下标,同样遵循默认下标规则

 

array(-2=>1,  ‘dd’=>5,  1.1,  “abc”,  true); //负数下标不算在整数下标中,而只当作字符下标

 

//则最好3项的下标是:0, 1, 2

 

array(2.7=>1,  ‘dd’=>5,  1=>1.1,  “abc”,  0=>true)//浮点数下标为自动转换为整数,且直接抹掉小数

 

array(“2.7” =>1,  ‘dd’=>5,  “11”=>1.1,  “abc”,  true)//纯数字字符串下标,当作数字看待,

 

//则此时下标为:2, ‘dd’, 11, 12, 13

 

array(2=>1,  ‘dd’=>5,  true=>1.1,  “abc”,  false=>true)//布尔值当下标,则true1false0

 

array(2=>1,  ‘dd’=>5,  2=>1.1,  “abc”,  true)//如果下标跟前面的重复,则单纯覆盖前面同名下标的值

 

//此时相当于为:array(2=>1.1,  ‘dd’=>5,  “abc”,  true)

 

其他形式;

 

$arr1[] = 1;

 

$arr1[] = 5;

 

$arr1[] = 1.1; //直接在变量后面使用[],就成为数组,并依次赋值。

 

。。。。

 

$arr2[‘aa’] = 1;

 

$arr2[‘bbbcc’] = 5;

 

$arrr2[5] = 1.1;

 

。。。。。。。。

 

这种形式写的下标,其实跟使用array语法结构几乎一样

 

取值:通过下标。

 

 

 

赋值(同定义):

 

 

数组遍历

 

遍历基本语法

 

foreach( $arr   as   [ $key  => ] $value ) //$key可以称为键变量,$value可以称为值变量。

 

{

 

//这里就可以对$key  $value 进行所有可能的操作——因为他们就是一个变量

 

//$key 代表每次取得元素的下标,可能是数字,也可以能是字符串

 

//$value 代表每次取得元素的值,可能是各种类型。

 

//此循环结构会从数组的第一项一直遍历循环到最后一项,然后结束。

 

}

函数

基本使用

函数定义形式

FUNCTION  RETURN  

 

function  函数名 (形参1,形参2.... ){

//函数体(代码块)

}

函数参数问题

一个函数,

在定义时,有形式参数(形参);

1,形参一定是一个变量名!

2,该变量名只能是在该函数中有效的变量名;

3,而且只在该函数调用并执行时有效,函数结束,通常这些变量也就“销毁”。

在调用时,有实际参数(实参)。

实参就是一个“实际数据”,

该数据可以是一个“直接数据”(比如5”abc”),也可以是一个变量中存储的数据。

实参的作用是将其数据“赋值给”形参变量。

实参跟形参之间通常应该有个一一对应”关系:

定义形式:   function  函数名(形参1,形参2...... ){ 。。。。}

 

调用形式:    函数名(实参1,实参2.....

 

在系统中,var_dump()这个函数也有同样的使用效果:

 

var_dump($v1);

 

var_dump($v1, $v2, $v3); //也可以

 

这种应用的实现,是依赖与系统中的3个系统函数来达到的:

 

func_get_args(); //获得一个函数所接收到的所有实参数据,并结果是一个数组

 

func_get_arg(n); //获得一个函数所接收到的第n歌实参数据(n0开始)

 

func_num_args(); //获得一个函数所接收到的所有实参数据的个数

 

实际应用中,常常是需要根据“用户给定”的数据,来决定调用哪个函数,比如:

 

function  jpg(){处理jpg}

 

function  png(){处理png}

 

function  gif(){处理gif}

 

$fileName = get_fileName(){获取用户上传的图片名};

 

$houzhui = get_houzhui($fileName);

 

$houzhui();

 

 

 

call_user_func_array(匿名函数,数组);

 

 

有关函数的系统函数:

 

function_exists():判断某个函数是否被定义过,返回布尔值

 

if(  function_exists(“ func1 “)  == false ){

 

function  func1(){。。。。。。}//定义函数

 

}

 

func_get_arg(n):获得一个函数的第n个实参值(n从0开始)

 

func_get_args():获得一个函数的所有实参,结果是一个数组

 

func_num_args():获得一个函数的所有实参的个数。

 


以上是关于20180821 PHP环境下 数组 函数的主要内容,如果未能解决你的问题,请参考以下文章

CTF-WEB-20180821-#XXE#JSON

如何遍历一个文件夹下的所有文件,并用md5函数算出所有文件的md5值?(用php实现)

php:extract()函数

PHP 数组过滤空值 array_filter

php 服务器变量$_SERVER 服务器环境变量 $_ENV

PHP max_input_var设为了1000导致post数组太多时无法接受后面的参数值