*/
@($a=2/0) or die;
echo \后的语句不执行\;
?>
数组
一维数组: 声明方法:
1) 不指定数组元素的键
如:$chars[]=”humour”;
当数组新元素的键没有指定时新元素的键在已有元素最大整数键的基础上递增(数组没有整数键时,则从0开始递增)。
$chars[]=\; $chars[]=\;
print_r($chars);//Array ( [0] => humour [1] => options ) 2) 将数组元素的键指定为某个整数
$chars1[5]=\; $chars1[2]=\; $chars1[]=\;
print_r($chars1);//Array ( [5] => humour [2] => options [6] => sofer )
注意:PHP数组是一个有序容器,数组按照向数组添加元素的顺序输出,而不是按照键的大小进行输出,可以将其称为数组的有序性。 PHP中的数组整数键不要求必须连续。 3)将数组的键指定为某个字符串
$chars1[\]=\; $chars1[\]=\; $chars1[\]=\; print_r($chars1);//Array ( [a] => humour [b] => options [c] => sofer ) 4) 使用array()语言结构创建数组
$colors=array(\=>\,\=>\,3=>\,5);
print_r($colors);//Array ( [red] => red [blue] => blue [3] => white
[4] => 5 )
创建数组的注意事项:
1) 如果数组元素的键是一个浮点数,则键将被强制转换为整数;如果键时
TRUE或者FALSE,则键被强制转换为1或0. 2) 3)
不要使用red=>”red” 这样的格式创建数组元素。也不要使用#colors[red]=”red”这种形式。red没带双引号。
PHP预处理器会将形如red=>”red”键值对中的red(不带双引号)作为常量处理,这时候如果没有定义red这个常量,就会出错。
$ccs=array(red=>\,\=>\);
print_r($ccs);//Notice: Use of undefined constant red - assumed 'red' in E:\\wamp\\www\\PhpDemo1\\php\\newfil10e.php on line 16 echo \; ?>
define(\, \);
$ccs=array(red=>\,\=>\);
print_r($ccs);//Array ( [red] => red [blue] => blue ) echo \; ?>
数组值的访问:
如果数组的键是一个字符串,且这个字符串完全符合整数格式时,数组元素的键将被强制转换为整数。
数组的键不能相等(注意使用的是==号比较)
$color1s=array(\=>\,\=>\,3=>\,5); echo $color1s[\]; echo \; ?>
数组中的传值赋值和传地址赋值:
//传值赋值
$colors1=array(\=>\,\=>\);
$colors2=$colors1;
$colors2[\]=\;//为$colors2添加一个元素 $colors2[\]=\;
print_r($colors1);//Array ( [red] => red [blue] => blue ) echo \;
print_r($colors2);//Array ( [red] => #ff0000 [blue] => blue [yellow] => yellow )
echo \;
//传地址赋值
$colors3=array(\=>\,\=>\); $colors4=&$colors3;
$colors4[\]=\;//为$colors2添加一个元素 $colors4[\]=\; print_r($colors3);//Array ( [red] => #ff0000 [blue] => blue [yellow] => yellow )
echo \;
print_r($colors4);//Array ( [red] => #ff0000 [blue] => blue [yellow] => yellow )
二维数组:
创建方法:
1) 直接将变量声明为二维数组
$stus[\]=array(\=>\,\=>\); $stus[\]=array(\=>\,\=>\); 2) 使用array()结构创建
$stus=array(\=>array(\=>\,\=>\), \=>array(\=>\,\=>\));
二维数组的访问:
echo $stus[\][\];
常用数组处理函数
数组处理函数的参数为数组类型参数时,若是传值赋值,则函数不会影响到数组的内部结构,例如:foreach语言结构,数组统计函数等。若是传地址赋值,有可能会影响到数组的内部结构(例如数组元素发生变化或数组的当前指针发生变化)例如数组指针函数(current和key除外),排序函数等。
快速创建数组的函数: 1)
array range(mixed start,mixed end)
快速创建一个从start到end范围的数字数组或字符数组。如果start>end序列将从start降序到end
create by zhang on time 2013-7-8 下午05:51:53
*/
$nums=range(1,5); print_r($nums); echo \;
$chars=range(\, \); print_r($chars); echo \;
$chars1=range('e', 'a'); print_r($chars1); echo \;
//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) //Array ( [0] => a [1] => b [2] => c [3] => d [4] => e ) //Array ( [0] => e [1] => d [2] => c [3] => b [4] => a ) ?>
2)array explode(string separator,string str)
使用指定的字符串分割符separator分割字符串str,将分割后的字符串放到数组中,返回数组。 $ip=\;
$explode=explode(\, $ip); print_r($explode);
3)array array_combine(array keys,array values)
创建一个新数组,用数组keys的值作为新数组的键,数组values的值作
为新数组的值。 4)
array array_fill(int start_key,int length,mixed value)
创建一个数组,并为数组添加length个数组长度,数组元素的键从start_key处开始递增,每个数组元素的值为value。 5)
array array_pad(array arr,int pad_size,mixed pad_value)
该函数返回一个arr的一个拷贝,并用pad_value将其填充到pad_size指定的长度。如果pad_size为正,则数组被填补到右侧,如果为负则从左侧开始填充。如果pad_size的绝对值小于等于arr数组的长度,则不填充。
数组统计函数:
1) int count(array arr[,int mode])
统计并计算arr中元素的个数。如果数组arr是多维数组,可将mode设置为常量COUNT_RECURSIVE(或整数1),计算数组中所有元素的个数。Mode的默认值是0
2)mixed max(array arr[,array…])
统计并计算数组中的最大值
PHP会将非数值的字符串当成0处理,,但如果这是最大的数值,则仍然会返回该字符串。如果多个数组元素的值为0,函数返回其中数值的0,如果没有数值的0,则返回按字母表顺序最大的字符串。 3)mixed min(array arr[,array…])
统计并计算数组中的最小值
PHP会将非数值的字符串当成0处理,,但如果这是最小的数值,则仍然会返回该字符串。如果多个数组元素的值为0,函数返回其中数值的0,如果没有数值的0,则返回按字母表顺序最小的字符串。