Day5:函数

一、函数

1、定义:完成指定任务并且已经命名的代码块,可以用来重复使用,一段代码如果调用2次以上,通常我们就定义成函数

2、作用:

(1)容易维护

(2)代码不冗余,能够提高代码的重用性

3、函数的种类

(1)系统函数,系统已经提供了一些函数

(2)自定义函数

4、定义:

(1)将你要写的代码写出来

(2)将代码用大括号包起来

(3)使用关键字funciton 函数名()来声明这个函数

5、注意:

(1)函数名必须有意义

(2)函数名不能使用纯数字

(3)函数的名字不区分大小写

(4)函数名不能使用系统函数名,必须唯一

6、函数调用:

(1)函数不调用不执行

(2)函数名()

(3)函数的调用,可以放在函数声明的前面,也可以是后面,因为代码放在内存的代码段中,在执行代码之前已经被放在内存中了

7、自定义函数的参数

(1)形参:形式上的参数,在定义函数时提供的参数

(2)实参:实际的参数,在调用的时候括号里面写的参数

  注意:

    (1)形参和实参可以有多个,之间用逗号分隔

    (2)形参和实参的个数应该对应上

(3)默认参数:如果在使用函数时,没有填写指定数量的实参会报错,但是我们可以在声明形参的同时给它默认值

  注意:

    (1)当形参中有默认值,而且实参中也有值了,那么实参的值会覆盖形参的值

    (2)可以给定部分参数,部分参数也有默认值,但是尽量放到后面,因为参数传值是一一对应的

    (3)函数中不给形参参数默认值的,必须在调用的时候给实参

    (4)函数中不给参数默认值的叫必选参数

    (5)函数中给参数默认值的叫可选参数

function mytable($hang=1,$lie=5){
}

8、变长参数列表

func_get_args():获得函数中所有参数的集合

func_num_arts():获得函数中实际参数的个数

func_get_arg(第几个参数):获得第几个参数的值,第几个参数是从0开始的

注意:

  函数中实参比形参个数多将不会出错,但时默认情况下会忽略,我们可以使用func_get_xxx获得相关的信息

9、引用参数:通常用在要修改参数值本身的情况下

注意:

  (1)&符号必须放在形参上面

  (2)如果是引用参数,传参数必须传变量,不能传值,因为只有变量才有地址

<?php
$str1='小猫';
function mystr(&$str){
    echo $str.='真可爱';
}
mystr($str1);
var_dump($str1);
?>

10、自定义函数中的返回值:return

注意:

  一般写函数我们不会多次使用echo,而是将这个值返回,使用return,函数在哪里调用的就返回到哪里

  return返回值以后,它后面的代码就不执行了

11、局部变量

注意:

(1)函数内部声明的变量只能在函数内部使用,就是局部变量

(2)函数的形参其实就是一个局部变量,调用的时候将实参传递到内部

12、全局变量:在函数外部声明的变量叫全局变量,可以在函数中使用(条件:你需要加上global关键字)

global可以将外部的变量在函数内部使用,这才是名副其实的全局变量

<?php
$name='xxooxxoo';
$sex=0;
function test(){
    $name='ooxx';
    global $name,$sex;
    echo $name;
    echo $sex;
}
test();
?>

13、超全局变量:$GLOBALS,引用全局作用域中的全局变量,该变量是自动创建的,它包含了所有全局变量,需要使用$GLOBALS[‘’变量名']的方式来使用

<?php
$name='xxooxxoo';
$sex=0;
function test(){
    $name='ooxx';
    echo $GLOBALS['name'];
    echo $GLOBALS['sex'];
}
test();
?>

global和$GLOBALS的区别:

global是在函数中产生一个指向函数外部变量的引用变量,而不是真正的函数外部变量

$GLOBALS[]:调用的是外部变量,函数内外保持一致

14、静态变量:static 变量名 默认情况下,函数内的变量执行完就释放了,它是暂时不让释放

注意:

(1)在函数中声明的静态变量,只在第一次调用的时候声明,第二次调用一看是静态变量,就到静态区域查找,没有的话才再次声明

<?php
function test(){
    static $str=1;
    echo $str;
    $str+=1;
}
test();
test();
test();
test();
?>

15、变量函数:将变量的值(字符串)作为函数的名字加上括号来运行

<?php
function test(){
    echo 'hello world';
}
$var='test';
$var();
?>

16、回调函数:将函数名以字符串的方式传递,然后使用变量函数的方式来运行

<?php
    function demo1($guize){
        for($i=0 ; $i<=5 ;$i++){
            if($guize($i)){
            continue;
            }
    }
    
    demo1('guize1');
    //demo1('guize2');  

    //规则是用来判断数字是否为3
    function guize1($num){
        //如果这个$num为3的话返回真
        if($num == 3){
            return true;
        }else{
            return false;
        }
    }
    //规则是用来判断数字和2区域是否为0
    function guize2($num){
        if($num % 2 == 0){
            return true;
        }else{
            return false;
        }
    }


    //demo1();

    /*function demo2(){

        for($i = 0 ; $i <= 5 ; $i++){
            if($i % 2 ==0){
                continue;
            }

            echo $i.'<br />';
        }
    }

    demo2();*/
?>
View Code
posted @ 2017-09-14 13:41  licy_python  阅读(110)  评论(0编辑  收藏  举报