1、函数
函数就是将一些重复用到的功能写在一个单独的代码块中,需要用到的时候调用。
?
a、在函数间传递参数的方式:
class="php" name="code"><?php function mytest($num){ $num*=5; echo "函数内部的num={$num}<br/>"; } $num=2; mytest($num); echo "外部的num={$num}"; ?> result: 函数内部的num=10 外部的num=2?
<?php function mytest(&$num){ $num*=5; echo "函数内部的num={$num}<br/>"; } $num=2; mytest($num); echo "外部的num={$num}"; ?> result: 函数内部的num=10 外部的num=10?
<?php function mytest($num,$num2=3){ $num*=5; $num2*=3; echo "num={$num}<br/>"; echo "num2={$num2}<br/>"; } $num=2; mytest($num); ?> result: num=10 num2=9?
b、变量函数:函数的调用是是通过改变变量名来实现的,通过在变量的后面加括号加上括号,php将自动寻找和变量名相同的函数。如果找不到就会报错。这个技术可以用于实现回调函数。
<?php function sayHello(){ echo "hello...<br/>"; } function sayHi(){ echo "Hi...<br/>"; } $func="sayHello"; $func(); $func="sayHi"; $func(); ?> result: hello... Hi...
?c、函数的引用:对函数的引用就是对函数返回结果的引用。
<?php function &say(){ static $tmp=1; echo "tmp={$tmp}<br/>"; $tmp++; return $tmp; } $tee=say(); $tee=5; $tee=say(); $tee=&say(); $tee=5; $tee=say(); ?>
?d、取消引用:取消引用使用unset()函数,他只是断开了变量名和变量内容之间的引用,而不是销毁了变量内容。
<?php $num=100; $money=&$num; echo "money=${money}<br/>"; unset($money); echo "money=${money}<br/>"; echo "num={$num}"; ?> result: money=100 money= num=100
?
?
?
2、php数组
在php中声明数组的方式主要有两种,第一种是使用array()函数,第二种是直接为数组元素赋值。通过print_r()函数可以打印出数组的结构。
<?php $num=array("one"=>"hello","two"=>"world..."); echo $num["one"]." ".$num["two"] ?> <?php $num=array(); $num[]="hello"; echo $num[0]; ?>
a、数组类型:php中的数组分为索引数组和关联数组。索引数组指的是使用数字作为下标,关联数组使用的是字符串作为下标。
?
b、遍历数组:使用foreach()或者是list()都可以,经过foreach()的数组,在重新使用前应该先重置数组的索引。
<?php $num=array("one"=>"wahaha","two"=>"hahawa"); //foreach() foreach ($num as $key => $value){ echo "索引为{$key}的值为{$value}<br/>"; } reset($num);//重置数组索引 //list each while(list($key,$value)=each($num)){ echo "索引为{$key}的值为{$value}<br/>"; } ?>
?c、合并数组:合并数组使用array_merge()函数,如果第二个数组中存在第一个数组中的索引,那么第一个数组中对应索引的值就会改变。
<?php $num=array("one"=>"wahaha","two"=>"hahawa"); $num2=array("two"=>"apple","three"=>"milk"); $result=array_merge($num,$num2); print_r($result); ?>
?d、将字符串转换成数组:使用explode(String separator,String str,[int limit]),第一个参数表示分隔符,第二个参数表示字符串,第三个参数表示返回的数组最多包含limit个元素,如果limit为负数,则表示返回除了最后limit个元素外的所有元素,如果赋值范围大于数组长度,则返回空数组。
<?php $str="apple_milk_orange"; $arr=explode("_", $str); print_r($arr); ?> Array ( [0] => apple [1] => milk [2] => orange ) ?
?
e、将数组转换成字符串:implode($glue, $pieces),第一个参数表示分隔符
<?php $arr=array("milk","apple","organe"); echo implode("-", $arr); ?> milk-apple-organe
?