PHP 11:函数
本文章介绍PHP的函数。
如何学习呢?可以从以下几个方面考虑
函数是如何定义的呢?语法可以为:
那么是不是和C语言一样,函数先定义后使用呢?这个问题非常好。在PHP3中,确实需要这样,但是后期版本则没有限制了。
由于PHP存在函数种的函数或条件函数,所以这2种情况下需要先定义后使用,要是没有定义函数你却使用了,系统会出问题的。函数中的函数倒是和Python有些类似。
条件函数的例子可以是:
2. 函数的参数是如何定义的?
和通常使用的函数参数一样,参数列表用逗号分隔。那么参数是按值传递还是按引用传递呢?答案是值传递。如何按引用传递呢?其实和C++里一样,在参数前使用&符号。
那么如何设置缺省的参数值呢?这个和C++一样,在参数列表里直接写上就行了。例如:
3. 函数是否支持重载?
不支持。
4 .函数的返回值是如何定义的。
如果单独返回一个值或不返回值,和普通语言一样,return就可以。但是若返回多个值,一种方法是返回一个数组。例如:
5. 函数有变量函数吗?
有,和可变变量一样。
如何学习呢?可以从以下几个方面考虑
- 函数是如何定义的?区分大小写吗?
- 函数的参数是如何定义的?
- 函数是否支持重载?
- 函数的返回值是如何定义的。
- 函数有变量函数吗?
- 函数是如何定义的?区分大小写吗?
函数是如何定义的呢?语法可以为:
<?php
function func($arg_1, $arg_2, , $arg_n)
{
echo "Example function.\n";
return $retval;
}
?>
其实和其他语言差不多。不过函数声明里不需要显式的说明返回类型。和JavaScript差不多。function func($arg_1, $arg_2, , $arg_n)
{
echo "Example function.\n";
return $retval;
}
?>
那么是不是和C语言一样,函数先定义后使用呢?这个问题非常好。在PHP3中,确实需要这样,但是后期版本则没有限制了。
由于PHP存在函数种的函数或条件函数,所以这2种情况下需要先定义后使用,要是没有定义函数你却使用了,系统会出问题的。函数中的函数倒是和Python有些类似。
条件函数的例子可以是:
1 <?php
2 $isRequired=true;
3 if($isRequired)
4 {
5 function func($op1,$op2)
6 {
7 return $op1+$op2;
8 }
9 }
10 if($isRequired)
11 echo "func(1,3)=".func(1,3);
12
13 function helloWorld()
14 {
15 return "Hello,world";
16 }
17 echo '<br>Call function helloWorld():'.helloWorld();
18 ?>
输出结果为:2 $isRequired=true;
3 if($isRequired)
4 {
5 function func($op1,$op2)
6 {
7 return $op1+$op2;
8 }
9 }
10 if($isRequired)
11 echo "func(1,3)=".func(1,3);
12
13 function helloWorld()
14 {
15 return "Hello,world";
16 }
17 echo '<br>Call function helloWorld():'.helloWorld();
18 ?>
func(1,3)=4
Call function helloWorld():Hello,world
函数中的函数可以是:Call function helloWorld():Hello,world
1 <?php
2 function func()
3 {
4 function subfunc()
5 {
6 echo "I don't exist until func() is called.\n";
7 echo "I have alrady made ";
8 }
9 }
10
11 /* We can't call subfunc() yet
12 since it doesn't exist. */
13
14 func();
15
16 /* Now we can call subfunc(),
17 func()'s processesing has
18 made it accessable. */
19
20 subfunc();
21
22 ?>
输出结果是:2 function func()
3 {
4 function subfunc()
5 {
6 echo "I don't exist until func() is called.\n";
7 echo "I have alrady made ";
8 }
9 }
10
11 /* We can't call subfunc() yet
12 since it doesn't exist. */
13
14 func();
15
16 /* Now we can call subfunc(),
17 func()'s processesing has
18 made it accessable. */
19
20 subfunc();
21
22 ?>
I don't exist until func() is called. I have alrady made
2. 函数的参数是如何定义的?
和通常使用的函数参数一样,参数列表用逗号分隔。那么参数是按值传递还是按引用传递呢?答案是值传递。如何按引用传递呢?其实和C++里一样,在参数前使用&符号。
那么如何设置缺省的参数值呢?这个和C++一样,在参数列表里直接写上就行了。例如:
<?php
function MakeComputerBrand($brand = "IBM")
{
return "Making ".$brand." computer now.<br>";
}
echo MakeComputerBrand();
echo MakeComputerBrand("DELL");
echo MakeComputerBrand("HP");
echo MakeComputerBrand("Lenevo");
?>
输出的结果是:function MakeComputerBrand($brand = "IBM")
{
return "Making ".$brand." computer now.<br>";
}
echo MakeComputerBrand();
echo MakeComputerBrand("DELL");
echo MakeComputerBrand("HP");
echo MakeComputerBrand("Lenevo");
?>
Making IBM computer now.
Making DELL computer now.
Making HP computer now.
Making Lenevo computer now.
Making DELL computer now.
Making HP computer now.
Making Lenevo computer now.
3. 函数是否支持重载?
不支持。
4 .函数的返回值是如何定义的。
如果单独返回一个值或不返回值,和普通语言一样,return就可以。但是若返回多个值,一种方法是返回一个数组。例如:
<?php
function small_numbers()
{
return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>
function small_numbers()
{
return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>
5. 函数有变量函数吗?
有,和可变变量一样。