php流程控制中的break和continue,php函数定义
break和continue

函数

函数的命名规则

函数的定义
/**
* function 名字(参数1, 参数2...){
* #代码块;
* #函数快;
*
* return 返回值; //可选,可通过返回值把内部函数的值传递出去
* }
*
**/
//定义一个名叫fun的函数
function fun(){
echo "正义联盟";
}
//调用函数
fun(); //此时执行函数fun里的代码块 echo "正义联盟" 屏幕打印“正义联盟”
- 函数只有被调用了才会被执行,否则不会执行函数体内的代码。
- 因为php会优先扫描文件内的函数,函数定义会提前,所以可以在函数定义的代码前调用函数。
- PHP不支持函数重载,也不可能取消定义或者重新声明已经定义的函数。
函数的参数
- 形参,在定义函数的圆括号中的参数为形参
- 实参,在调用函数的圆括号中的参数为实参
- 实参和形参按照顺序一一对应
- 实参向形参传值的过程就相当于赋值,形参只在函数执行的过程中存在,执行完后销毁
function fun($a, $b){ //这里的$a,$b就是形参,实际上$a为1,$b为2
echo $a+$b;
}
fun(1, 2); //调用函数fun,并传入参数1,2
-
变量的作用域
![]()
-
php函数无法直接调用函数体外的定义的函数。外部也不能直接访问函数体内的变量。
↓↓↓
<?php
$a = 100;
function fun(){
var_dump($a); //NULL空值访问不到
}
fun();
用户在php中定义的变量都可以在一个HashTable中找到,当php中定义一个变量,内核会自动的把它的信息存储到一个用HashTable实现的符号表里
当用户在php中调用一个函数或者类的方法时,内核会创建一个新的符号表并激活之,这也是为什么我们无法在函数中使用函数外定义的变量的原因(因为他们分属两个符号表,一个当前作用域,一个全局作用域的),如果不是在一个函数里,则全局作用域的符号表处于激活状态。
- php中函数内部调用外部变量的方法
- 声明全局变量global
↓↓↓
<?php
$a = 100;
function fun(){
global $a;
var_dump($a);
}
fun();
对了,像C和JS函数体内可用访问到全局变量,但全局变量无法直接访问到函数体内的变量,可用用return传值访问。
php_0317_day9


浙公网安备 33010602011771号