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
    $a = 100;
    function fun(){
        global $a;
        var_dump($a);
    }
    fun();

对了,像C和JS函数体内可用访问到全局变量,但全局变量无法直接访问到函数体内的变量,可用用return传值访问。
php_0317_day9

posted @ 2020-03-17 01:44  正义联盟  阅读(159)  评论(0)    收藏  举报