php函数function中return问题:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php函数function中return问题:相关的知识,希望对你有一定的参考价值。
<?
function _pr ($val,$val2=1)
$a=$val+$val2;
return $a;
$a=_pr(6,9);
echo $a;
?>
中 为什么要用return ,请讲通俗点,谢谢!!
function 里的 $a 和外面的$a不是一个值, function里的是局部变量,只在function里起作用。如果你直接echo $a 而没有写 $a=_pr(6,9); 是会报错的。你也可以写成$b = _pr(6,9);得到的值也是一样 参考技术A 通俗一点,用白话讲:$a 向函数 _pr() 发出请求,给了 _pr() 两个数字,让它计算出结果。当 _pr() 计算之后把得出的结果“返还给”(也就是 return) 向它发出请求的 $a。现在 $a 就得到了计算后的值 15,也就是 $a = 15。 参考技术B 首先大的结构式一个匿名函数,匿名函数其中的一种形式就是这样,之所以用括号包起来并且在最后加一个括号是为了调用这个匿名函数。形式如下:
(function()
......
)();
这样写的好处是里边的变量都是封闭的,不对外开放,减少了全局变量带来的混乱。
详细的你可以查一下匿名函数和闭包
参考技术C return可以使你能够用函数给变量赋值
不用也是可以的本回答被提问者采纳 参考技术D function _pr ($val,$val2=1)
$a=$val+$val2;
echo $a;
_pr(6,9);
不用return 也可以的
?>
PHP函数
函数:用function关键字定义拥有自己名字的完成特定功能的代码段,可以有参数和返回值。
函数定义:function 函数名([形参1,形参2,...形参n]){
函数体;
return 返回值;
}
代码:
1 function Add($a,$b){ 2 return $a+$b; 3 }
函数的命名:
1.函数的名称不能和已有的重名
2.函数名称只能包含字母、数字、下划线
3.函数名称不能以数字开始
函数调用:函数名([实参1,实参2,...实参n]);
注:1.调用未定义的函数PHP会报致命错误(Fatal error)
2.函数调用不区分大小写
PHP变量作用范围
局部变量:局部变量也成为内部变量,是在函数内部声明的变量(包括形参),其作用域仅限于函数内部。当每次函数被调用时,函数内部的变量才被声明,执行完毕后函数内部的变量都会被释放。
全局变量:全局变量也成为外部变量,是在函数外部定义的,作用域从变量定义开始,到本程序文件末尾。
注:全局变量不是自动设置为可用的,在PHP中由于函数被视为单独的程序片段,所以局部变量会覆盖全局变量的能见度,因此在函数中无法直接调用全局变量。需要使用global关键字或者 $GLOBAL数组。
代码:
1 $a=$b=10; 2 echo add(); 3 function add(){ 4 global $a,$b; 5 return $a+$b; 6 }
1 $a=$b=10; 2 echo add($a,$b); 3 function add(){ 4 $c=$GLOBALS[‘a‘]+$GLOBALS[‘b‘]; 5 return $c; 6 }
静态变量:局部变量从存储方式上可分为动态存储类型和静态存储类型。函数中的局部变量如果不专门声明在static存储类别,默认都是动态存储。而声明为static静态存储,在函数被调用时,静态变量不会消失,而是在所有调用者之间共享。
代码:
1 function demo(){ 2 static $a=1; 3 return $a++; 4 } 5 echo demo(); //1 6 echo demo(); //2 7 echo demo(); //3
声明各种形式的PHP函数
1.常规参数的函数:实参和形参个数相等,类型一致,一一对应。
代码:
1 function demo($a,$b){ 2 return $a+$b; 3 } 4 var_dump(demo(10,20));
2.引用参数的函数:在PHP中默认形参传值属于值传递,加上&符可变变为引用传递,即把该变量(一定要是变量不能是数值)的内存存储区块相对地址导入函数之中。当该变量在函数内部发生变化时,函数外面父程序也会相应的变化。
代码:
1 function demo(&$a){ 2 $a=$a+1; 3 } 4 function demo1($a){ 5 $a=$a+1; 6 } 7 $a=10; 8 echo $a;echo "<br>"; //10 9 demo1($a); 10 echo $a;echo "<br>"; //10 11 demo($a); 12 echo $a; //11
3.默认参数的函数:在定义时声明了参数,而在调用时没有指定或者少指定参数就会出现缺少参数警告(Warning),PHP支持默认方式调用,为形参设置默认值。
代码:
1 function demo($a=10,$b=20){ 2 return $a+$b; 3 } 4 echo demo(); //30
4.可变个数参数的函数:使用默认参数适合实参个数少于形参的情况,而可变个数参数的函数适合实参多余形参的情况。
代码:
1 function demo(){ 2 $args=func_get_args(); 3 for($i=0;$i<count($args);$i++){ 4 echo "第".($i+1)."个参数是:{$args[$i]}.<br>"; 5 } 6 } 7 demo(1,2,3,4,5,6,7,8);
注:三个系统函数
1> func_get_args()函数返回所有参数组成的数组
2> func_get_arg() 函数接受一个数字参数
3> func_num_args()函数返回参数的总数
5.回调函数:所谓回调函数就是指调用函数时并不是传递一个标准的变量作为参数,而是将另一个函数作为参数传递到调用的函数中。
1>变量函数:将一个函数的名字赋值给一个变量,使用该变量时加上小括号就是调用这个函数。
代码:
1 function demo(){ 2 echo 100; 3 } 4 $a="demo"; 5 $a();
2>使用变量函数声明和应用回调函数
代码:
1 function filter($fun){ 2 for($i=0;$i<=100;$i++){ 3 if($fun($i)) 4 continue; 5 echo $i."<br>"; //打印所有奇数 6 } 7 } 8 function demo($num){ 9 return $num%2==0; 10 } 11 $a="demo"; 12 filter($a);
3>借助call_user_func_array()函数自定义回调函数
6.递归函数:即自调函数,在函数体内部直接或间接自己调用自己。通常此类型的函数体之中会附加一个条件判断,在特定条件下终止递归,防止死循环。
代码:
1 function add($n){ 2 if($n==1){ 3 return 1; 4 }else{ 5 $n+=add($n-1); 6 } 7 return $n; 8 } 9 echo add(100); 10
以上是关于php函数function中return问题:的主要内容,如果未能解决你的问题,请参考以下文章