当前位置:Gxlcms > PHP教程 > 笨鸟学php(五)函数的声明与使用_PHP教程

笨鸟学php(五)函数的声明与使用_PHP教程

时间:2021-07-01 10:21:17 帮助过:2人阅读

笨鸟学php(五) 函数的声明与使用


1、函数的声明

  1. <!--?php
  2. /**
  3. * function 函数名(参数1, 参数2.... ){
  4. *
  5. 函数体;
  6. *
  7. 返回值;
  8. * }
  9. */
  10. $sum = sum(3, 4);
  11. echo $sum;
  12. function sum($x, $y){
  13. $sum = 0;
  14. $sum = $x * $x + $y + $y;
  15. return $sum;
  16. }
  17. ?-->

2、变量的范围

局部变量: 在函数中声明的变量就是局部变量, 只能在自己的函数内部使用
全局变量: 在函数外声明的变量就是全局变量, 在变量声明以后直到整个脚本结束前都可以使用, 包括在函数中和 { } 中都可使用

2.1 知识点: PHP的变量分不出是声明还是使用

  1. <!--?php
  2. $a = 10;
  3. function demo($a){
  4. $a += 10;
  5. echo $a . '<br-->';
  6. }
  7. demo($a);
  8. echo $a;
  9. // 结果: 20, 10
  10. // PHP的变量分不出 $a 是声明还是使用
  11. ?>
2.2 知识点: 函数中使用全局变量必须使用global关键字, 在声明global之后的变量才是全局的变量

  1. <!--?php
  2. $a = 10;
  3. function demo() {
  4. global $a;
  5. $a += 10;
  6. echo $a . " demo <br-->";
  7. }
  8. function test() {
  9. global $a;
  10. $a += 5;
  11. echo $a . "test <br>";
  12. }
  13. echo $a . " ----<br>"; // 10 ----
  14. demo(); // 20 demo
  15. echo $a . " !!!!<br>"; // 20 !!!!
  16. demo(); // 30 demo
  17. echo $a . " @@@@<br>"; // 30 @@@@
  18. test(); // 35 test
  19. echo $a . " ####<br>"; // 35 ####
  20. ?>

静态变量: 只能声明在函数中(类中), 不能在全局声明, 变量前使用static关键字修饰

2.3 知识点: 静态变量在静态代码块中存储, 它的值可以一个函数多次调用之间共享, 但只在第一次调用函数时声明到内存

以后再调用时就不再声明而直接使用(和Java类似)。

  1. <!--?php
  2. function test(){
  3. static $a = 0;
  4. $a++;
  5. echo $a."<br-->";
  6. }
  7. test(); // 1
  8. test(); // 2
  9. test(); // 3
  10. ?>

3、变量函数

其实这个和JS又很类似, 例如: 定义$var = hello, 下次使用$var()时就将寻找与变量值同名的函数hello()

  1. <!--?php
  2. function one($a, $b){
  3. return $a + $b;
  4. }
  5. function two($a, $b){
  6. return $a * $a + $b * $b;
  7. }
  8. function three($a, $b){
  9. return $a * $a * $a + $b * $b * $b;
  10. }
  11. //$var = one;
  12. //$var = "two";
  13. $var = three;
  14. echo "结果:".$var(3, 4)."<br-->"; // 91
  15. ?>

4、系统函数

4.1 常规函数
bool copy (string source, string dest)

4.2 带有mixed, mixed表示可以传任何类型的数据
bool chown (string filename, mixed user)

4.3 带有&参数的函数, 表示引用赋值, 这个参数不能传值, 只能传一个变量,然后函数将变量的值改变,

我们在使用这个变量时,值也是变化的(和Java中传引用又是一样的)

bool arsort (array &array [, int sort_flags])
  1. <!--?php
  2. $arr=array(1, 9, 5, 8, 3, 4);
  3. sort($arr);
  4. print_r($arr);
  5. ?-->
4.4 默认函数, 带有[]的函数, 表示这个参数是可选的,如果你传值了就使用你传的值,如果没有传值则使用默认值
bool arsort (array &array [, int sort_flags])
  1. <!--?php
  2. function demo($a=1, $b=20, $c){
  3. echo "### $a ### $b ### $c ###<br-->";
  4. }
  5. demo(8,9);
  6. ?>
4.5 带有...的参数函数, ...表示可以传任意多个参数
int array_unshift (array &array, mixed var [, mixed ...])

  1. <!--?php
  2. function demo(){
  3. $sum = 0;
  4. for($i = 0; $i < func_num_args(); $i++){
  5. $sum += func_get_arg($i);
  6. }
  7. return $sum;
  8. }
  9. echo demo(1, 2, 3, 4, 5, 6, 7, 8, 9);
  10. ?-->

4.6 回调函数 带有callback, 就是调用这个函数时需要我们传一个函数进来(函数名,函数名字串)
array array_filter (array input [, callback callback])

  1. <!--?php
  2. function demo($n){
  3. if($n % 2== 0){
  4. return true;
  5. }else{
  6. return false;
  7. }
  8. }
  9. $a = array(1, 2, -3, 4, -5, 6, -7, 8, 9);
  10. print_r(array_filter($a, demo)); // Array ( [1] =--> 2 [3] => 4 [5] => 6 [7] => 8 )
  11. ?>


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/854421.htmlTechArticle笨鸟学php(五) 函数的声明与使用 1、函数的声明 2、变量的范围 局部变量: 在函数中声明的变量就是局部变量, 只能在自己的函数内部使用...

人气教程排行