WEB安全之PHP基础(三):PHP函数、PHP变量作用域

WEB安全之PHP基础(三):PHP函数、PHP变量作用域

  • 1.PHP 函数
    • PHP 函数参数
    • PHP 默认参数值
    • PHP 函数 - 返回值
    • 匿名函数
    • 回调函数
  • 2.PHP 变量作用域
    • PHP global 关键词
    • PHP static 关键词

1.PHP 函数

  • PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。

  • PHP 用户定义函数
    除了内建的 PHP 函数,我们可以创建我们自己的函数。

  • 函数是可以在程序中重复使用的语句块。
    页面加载时函数不会立即执行。
    函数只有在被调用时才会执行。

  • 在 PHP 创建用户定义函数
    用户定义的函数声明以单词 “function” 开头:

语法
function functionName() {
  被执行的代码;
}
  • 无参数的函数,先不输入参数,调用了才会被执行
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第1张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第2张图片

  • return返回值
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第3张图片

  • 注释:函数名能够以字母或下划线开头(而非数字)。
    注释:函数名对大小写不敏感。
    提示:函数名应该能够反映函数所执行的任务。

  • 在下面的例子中,我们创建名为 “writeMsg()” 的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出 “Hello world!”。如需调用该函数,只要使用函数名即可:

实例


  • 形参
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第4张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第5张图片
  • 默认传入值
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第6张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第7张图片
  • 形参有默认值
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第8张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第9张图片

PHP 函数参数

  • 可以通过参数向函数传递信息。参数类似变量。
    参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
  • 下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:
";
}

familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
?>

PHP 默认参数值

  • 下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:
实例
";
}

setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>

PHP 函数 - 返回值

  • 如需使函数返回值,请使用 return 语句:
实例
";
echo "7 + 13 = " . sum(7,13) . "
"; echo "2 + 4 = " . sum(2,4); ?>

匿名函数

  • 匿名函数就是没有名字的函数。
    将一个匿名函数"赋值"给一个变量——此时该变量就代表该匿名函数了!
$callfunction=function($name){
    return $name;
};
echo $callfunction('moonsec');
  • 没有参数的匿名函数
  • 匿名函数赋值给一个变量
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第10张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第11张图片
  • 没有参数的匿名函数
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第12张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第13张图片

回调函数

  • 回调函数是指调用函数的时候将另一个函数作为参数传递到调用的函数中,而不是传递一个普通的变量作为参数
    使用回调函数是为了可以将一段自己定义的功能传到函数内部使用
";
        echo "She can speak ".$b;
    }
     
    function Speak_Test(){
        return call_user_func_array('Speak',array('Chinese','English'));   
    }
     
    Speak_Test()
?>
  • call_user_func(函数名,有形参的话输入字符串)
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第14张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第15张图片

2.PHP 变量作用域

  • 在 PHP 中,可以在脚本的任意位置对变量进行声明。
    变量的作用域指的是变量能够被引用/使用的那部分脚本。
  • PHP 有三种不同的变量作用域:
    local(局部)
    global(全局)
    static(静态)
  • Local 和 Global 作用域
    函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
    函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
    下面的例子测试了带有局部和全局作用域的变量:
测试函数内部的变量:

"; echo "变量 x 是:$x"; echo "
"; echo "变量 y 是:$y"; } myTest(); echo "

测试函数之外的变量:

"; echo "变量 x 是:$x"; echo "
"; echo "变量 y 是:$y"; ?>
  • 在函数内部访问不了全局变量
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第16张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第17张图片
  • 在函数外部也访问不了局部变量
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第18张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第19张图片
在上例中,有两个变量 $x 和 $y,以及一个函数 myTest()。$x 是全局变量,因为它是在函数之外声明的,而 $y 是局部变量,因为它是在函数内声明的。
  • 如果我们在 myTest() 函数内部输出两个变量的值,$y 会输出在本地声明的值,但是无法 $x 的值,因为它在函数之外创建。
    然后,如果在 myTest() 函数之外输出两个变量的值,那么会输出 $x 的值,但是不会输出 $y 的值,因为它是局部变量,并且在 myTest() 内部创建。
  • 注释:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。

PHP global 关键词

  • global 关键词用于在函数内访问全局变量。
    要做到这一点,请在(函数内部)变量前面使用 global 关键词:
  • WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第20张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第21张图片
  • 实例

  • PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
  • 通过关键字访问
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第22张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第23张图片
  • 上面的例子可以这样重写:

PHP static 关键词

  • 通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
    要完成这一点,请在您首次声明变量时使用 static 关键词:
  • 实例

  • 然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。///
    注释:该变量仍然是函数的局部变量。
  • WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第24张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第25张图片
  • WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第26张图片
    WEB安全之PHP基础(三):PHP函数、PHP变量作用域_第27张图片

你可能感兴趣的:(工作准备,php,前端,javascript)