数组基础
数组长度 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)//布尔值当下标,则true为1,false为0;
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歌实参数据(n从0开始)
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():获得一个函数的所有实参的个数。