zoukankan      html  css  js  c++  java
  • php函数

    函数是什么:
        函数(function)是一段完成指定任务的已命名代码块。函数可以遵照给它的一组值或参数完成特定的任务,并且可能返回一个值。(比如循环输出10行10列的表格,或者N行N列的表格)


    PHP中函数分为两种:
        1、自定义函数
            (比如循环输出10行10列的表格,或者N行N列的表格)
        2、系统函数
            (比如var_dump()、round()、floor()、ceil()等等)


    自定义函数
        1.自定义函数的格式
            function 函数名([参数列表])
            {
                函数体;
            }
        2.函数名的命名规则
            字母、数字、下划线,不能以数字开始;不能是关键字,不能与已存在的函数重名!
            函数名不区分大小写
        3.函数的调用
            函数名([参数列表])
            注意:函数的调用不分先后!!!!
            //小提示:在PHP中,只要以$符开始,就是变量;只要加()就是调用函数


    函数的参数
        形参
            函数定义时写的参数叫形参
            形参可以有默认值,默认值必须是常量表达式,不能是诸如变量、或者函数调用等
            有默认值的形参应该写在形参列表的右边,不然形同虚设
        实参
            调用函数时传的参数叫实参
            实参的传递要与形参一一对应,个数最好是一样的,不能少(形参没有默认值的时候),也不要多


    函数的返回值
        使用return语句可以让函数返回一个值
        1、没有return语句的函数,默认返回null
        2、return语句会立即终止函数的运行,函数中的后续代码不执行


    function_exists检测函数是否存在


    变量的作用域 —— 能够有效作用的区域
        全局变量
            1、在函数范围之外定义的变量叫全局变量(全局的按字面意思来说,到处都可以访问,比如函数内,C语或者Javascript言确实是的),但是,在PHP中,函数被看做一段独立的功能个体,它无法直接访问全局变量
            2、在函数内想要访问全局变量
                1.用关键字global将变量声明为全局的
                2.通过超全局数组$GLOBALS['变量名']取下标的方式访问
                    这是一个特殊的变量,会在脚本运行时自动创建
        局部变量
            1、在函数内部定义的变量叫局部变量,该变量仅在当前函数的作用域内有效,函数调用完毕立即释放
            2、在全局范围内访问局部变量
                1.将局部的用global变为全局的(要在变量定义之前声明)
                2.将变量当做返回值return出去
            3、形参也是局部变量


    静态变量
        用关键字static声明静态变量
        特性:静态变量只会声明一次,不会重复声明


    想了解任何一个函数都需要从3个方面去分析:
        功能 参数 返回值
        我们写函数的时候对这3个部分也要描述清楚,怎么描述呢,注释:
        参数
            1、常规参数,PHP八大类型
            2、伪类型参数  (语言参考-》类型-》本文档中使用的伪类型与变量)
                mixed    说明一个参数可以接受多种不同的(但不一定是所有的)类型。
                    如:var_dump()
                        print_r()
                number   说明一个参数可以是 integer 或者 float。
                    如:pow() 求次方数 
                callable 表示该参数需要传一个函数,还有个别名callback
                    如:call_user_func()
                        session_set_save_handler()
                void 作为返回类型意味着函数的返回值是无用的;作为参数列表意味着函数不接受任何参数。
                    如:unset()     不能有返回值
                        time()      不接受参数
                $... 表示一个函数可以接受任意个参数
                    如:var_dump();
        
        (要求:自定义一个函数,将任意个参数相加并返回结果)


        可变个数的参数列表
            func_get_args()  //返回一个数组,包含所有参数
            func_num_args()  //返回参数总数 
            func_get_arg(int)    //接收一个数字参数,返回指定参数,从0开始数


    函数参数的传递
        1.值传递(常用)
        2.引用传递
            通过引用传递的参数,函数可以修改其参数的值(语言参考-》引用的解释-》引用传递)


            注意:如果形参用'&$a'引用传递,调用函数时必须传变量,不能直接传值


    函数的种类:
        可变函数
            如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它


        回调函数
            被当做参数传递的函数,叫回调函数
            专门用来调用回调函数的函数:
                call_user_func('函数名'[, 参数1, 参数2...])


        匿名函数:
            没有名字的函数;
            通常作为回调函数传递


        递归函数:
            就是自己调用自己的函数


    文件的包含:
        可以使用自定义函数库,并且可以更好的实现代码重用!
        include
            include '文件路径';
            include('文件路径');
        require
            require '文件路径';
            require('文件路径');
        区别:如果包含的文件不存在,include报warning警告级别的错误,后续代码继续执行;require报一个fatal error致命错误,后续代码不执行


        include_once
        require_once
            用法同上面的include 和require ,区别也同上
        
        include和include_once的区别
            include:包含一次就执行一次;
            include_once:不管包含多少次,都只会执行一次,通常用于包含有函数、或者常量等不能重复定义的文件
  • 相关阅读:
    C#接口入门学习
    消息队列接收时报错:对消息队列系统的访问被拒绝
    给某做测试的好友的建议
    在不同的Sql Server 数据库服务器(不同机器)导数据。
    如何让开发人员更好测试?
    存储过程初探
    语音报警.NET开发初探
    vs2010下Siverlight开发环境安装
    C# HttpWebRequest 从google服务器获取google的PageRank PR值
    创建进程API CreateProcess Demo
  • 原文地址:https://www.cnblogs.com/hoewang/p/10257261.html
Copyright © 2011-2022 走看看