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
?