一,函数形式:
php中的四种基本函数形式:一般函数,嵌套函数,可变函数,匿名函数.
1,一般函数
1
function foo(){
2
//some code
3
4
}
2,嵌套函数
1
function outer(){
2
function inner(){
3
4
echo "this inner code";
5
}
6
//some code
7
8
echo "this outer code ";
9
}
当调用outer()时,inner并不会执行,只是定义,因此,在outer调用之前,不可以先调用inner();因为此时inner并未定义..
调用:
outer();
inner();
结果:
this is outer code
this is inner code
3,可变函数
1
switch($which){
2
3
case "first":
4
first();
5
break;
6
7
case "second":
8
second();
9
break;
10
11
case "third":
12
third();
13
break;
14
15
}
调用 $which();//如果$which="first",则调用first()函数
调用此函数前一定要有为这个变量存在的函数,否则运行时会产生一个错误,可利用函数function_exists()来检测是否存一个为该变量存在的函数;如
1
if(function_exists($which)){
2
3
$which();//存在则调用
4
5
}
6
4,匿名函数
php中使用create_function()来创建一个匿名函数
$my_func=create_function{args_string,execute code};
如:
$my_func=create_function('$a,$b','return($a+$b)')
调用:
echo(myfunc(1,2))
结果
3
二,函数参数
php函数中有两种传参方式:按值传参和按引用传参
1,按值传参
各种表达式,并将参数赋予函数中的适当变量,一般常用的传参式.
2,按引用传参
1
function doubler(&value){
2
3
$value=$value<<1;
4
5
}
6
7
$a=3;
8
echo(doubler($a));
9
echo($a);
结果:
6
6
3,可变参数
要声时一个可变参数的函数,需要省去所有参数
php提供了三个函数对其进入检索参数
$array=func_get_args();//返回一个由所有参数组成的数组
$count=func_num_args();//返回参数的个数
$value=func_get_arg(argument_number);//返回一个对应参数的值
例:
1
2
function count_list(){
3
if(func_num_args()==0){
4
5
return false;
6
}
7
else{
8
9
for($i=0;$i<fun_num_args();$i++){
10
11
$sum+=func_get_arg($i);
12
13
14
}
15
return sum;
16
}
17
18
19
20
}
21
22
echo count_list(1,3,5,9);
23
结果:
18
*这三个函数的结果不能直接作为一个参数给其他函数使用,应先赋给一个变量,再传给函数
$count=func_num_args();
foo($count)
4,遗漏参数
如果函数必需的任意一个参数没有被传递时,那么该参数保持未传递状态,并且php会为每一个遗漏的参数都发出警告,程序依然会执行...
5,默认参数
当未提供指定的参数时,则使用默认参数值,并且所有有默值的参数均应位于无所有没有默认值的参数的后面;
1
function mysum($a,$b=2){
2
3
return $a+$b;
4
5
}
调用:
echo(mysum(1));
结果:
3
三,函数返回值
php中可以使用return 返回任一个单值;可用数组返回多个值 return array(values1,value2,value3);另外可以返回值的引用,即在声明函数时在函数名前加一个" & "
1,返回单值
1
function return_one(){
2
return 42;
3
}
2,返回多个值
1
function return_array(){
2
return array("fred",35,42)
3
4
}
3,按引用返回值
1
function &myfunc($myvar){
2
3
return $myvar
4
5
}
例:
1
$names=array("name1","name2","name3","name4");
2
function &find_one($n){
3
global $names;
4
return $names[$n];
5
6
}
一,大小写:
1,所有内置结构和关键字以及用户定义的类和函数都不区分大小写(如:echo("hello")与ECHO("hello")效果相同);
2,所有变量都区分大小写(如:$name与$Name是不同变量)
二,注释风格:
1, C 风格注释:
1
<?php
2
/* this is a annotate.*/
3
4
/*
5
there are some annostate.
6
there are some annostate.
7
there are some annostate.
8
*/
9
10
?>
11
2,C++风格注释
1
<?php
2
//this is a annotate.
3
4
//there are some annostate.
5
//there are some annostate.
6
//there are some annostate.
7
?>
8
3,shell风格注释
1
<?hph
2
# this is a annostate.
3
4
###############
5
## there are some annostate.
6
## there are some annostate.
7
## there are some annostate.
8
###############
9
?>
10
三,数据类型
php中提供了8种值的类型(数据类型)。4种是标量型(单值变量):整型,浮点型,字符串型和布尔型;2种复合型(集合):数组和对象;2种特殊类型:资源和NULL.
变量基本操作:
一般变量:$varname=1;
可变变量:
$foo='bar';
$$foo='baz';//现在$bar='baz'.
变量引用:
$black='#000000'
$black=& $white;
$white="#FFFFFF" //现在$black不是'#000000'而是'#FFFFFF'
静态变量:
static $varname
静态变量的值在其作用域结束后不会被销毁,直到再次赋值
全局变量:
globe $varname
或
$varname=& $GLOBES['varname']
以上两种声明等效.
四,hph在html中的四种格式:
1,XML风格(推荐风格)
<?php echo "hello" ?>
2,SGML风格(short tag)
<? echo "hello" ?>
可以在php.ini中关闭此格式以避免和XML PI产生冲突
3,ASP风格
1
<% echo "hello" %>
4,脚本风格
1
<script language="php">
2
echo "hello";
3
4
</script>