zoukankan      html  css  js  c++  java
  • 【四】php 函数

    一:函数 

    作用:为了分割那些能够独立完成有明确任务的代码,更易于阅读
    调用函数:function_name(args1,args2...);
    args可以是任何一种php变量,包括数组或对象
    函数名不区分大小写,变量名区分
    命名规则:
    • 不能和已有的函数重名
    • 只能包含字母、数字和下划线
    • 不能以数字开头
    php函数不支持重复使用函数名称
    作用域:
    • 局部变量(函数作用域):函数内部声明的变量在函数外不可用
    • 全局变量(全局作用域):函数外部声明的变量在函数内不可用
    global:制定一个在函数中定义或使用的变量变量具有全局作用域
    function func(){
        global $var;
        $var="hello";
    }
    func();
    echo $var; //输出hello
    return:将终止函数的执行

    二:自定义函数

    基本概念:为完成某一功能的程序指令的集合,成为函数

    语法结构:

    function 函数名(参数列表){

      //函数体(完成某一功能的指令集合,必须有);

      //return 语句;(return语句主要的用处是返回一个结果)

    }

    特点:

    1. 函数的参数列表可以是多个
    2. 参数的数据类型可以是php语言支持的任意类型
    3. 函数的开头的字幕不要用数字或者特殊字符开头
    4. 函数名不区分大小写,变量区分大小写
    5. 函数内的变量是局部的

    入门案例:使用函数写一个+-*/的计算器

    function.php

     1 <?php
     2 //1.function是个关键字
     3 //2.jisuan是函数名
     4 //$num1,$num2,$oper是函数的参数
     5     function jisuan($num1,$num2,$oper){
     6         $res=0;
     7         switch ($oper) {
     8             case '+':
     9                 $res=$num1+$num2;
    10                 break;
    11             case '-':
    12                 $res=$num1-$num2;
    13                 break;            
    14             case '*':
    15                 $res=$num1*$num2;
    16                 break;            
    17             case '/':
    18                 $res=$num1/$num2;
    19                 break;
    20             default:
    21                 echo "youwu";
    22                 break;
    23         }
    24     return $res;
    25     }
    26 ?>
    View Code

    function1.php

    1 <?php
    2 //引入你需要的php文件
    3     require 'function.php';
    4     $num1=22;
    5     $num2=11;
    6     $oper="-";
    7     $res=jisuan($num1,$num2,$oper);
    8     echo "jisuanjieguo=".$res;
    9 ?>
    View Code

    三:引入其他页面的函数

    一共有四种方式:

    1.  require
    2. requice_once
    3. include
    4. include_once

    require和require_once的区别为:前者包含文件,后者会判断是否已经包含过了,如果包含过了则不包含文件

    require和include 的区别:

    • 相同点就是都可以引入页面
    • 不同点是include如果出现错误可以继续执行下面的代码,则require出现错误会终止程序
    • 1.require是一个函数,include是一个关键字

      2.require是无返回值,include有返回值

      3.include()会产生一个警告,而require()则导致一个致命的错误(出现错误,脚本停止执行

    在开发过程中,基本使用用require_once

     1 <?php
     2     //使用别的php文件中定义的函数
     3     //第一种方式
     4     //require 'aa.php';
     5     //2.通过变量方式引入
     6     // $filename="aa.php";
     7     // require $filename;
     8     // 3.
     9     //require("aa.php");
    10     //include "aa.php";
    11     include_once "aa.php";
    12     include_once "aa.php";
    13     abc();
    14     echo "qqq";
    15 ?>
    View Code

    注意:只要一调用函数,则php就会开辟一个新栈。各个栈里面的变量是相互独立的

     1     function abc($n){
     2         if ($n>2) {
     3             abc(--$n);
     4         }
     5         echo '$n='.$n."<br/>";
     6     }
     7     abc(4);
     8 打印结果:
     9 $n=2
    10 $n=2
    11 $n=3
    View Code

     四:递归函数

    递归函数:函数调用自己本身
    递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行。
    /**
    * 第一步,执行test("hello"),然后因为5>0,执行test("ello")(注意:后面还有没来得及执行的echo h)
    * 第二步,执行test("ello"),然后因为4>0,执行test("llo")(注意:同样后面还有没来得及执行的 echo e)
    * 第三步,执行test("llo"),然后因为3>0,执行test("lo")(注意:同样后面还有没来得及执行的 echo l)
    * 第四步,执行test("lo"),然后因为2>0,执行test("o")(注意:同样后面还有没来得及执行的 echo l)
    * 第五步,执行test("o"),然后因为1>0,执行test("")(注意:同样后面还有没来得及执行的 echo o)
    * 第六步,执行test (""),此时0>0的条件不满足,不在执行test()函数
    * 而是echo “<-->”,并且执行后面的 echo substr($str,0,1);此时函数已经不再调用自己,开始将流程的主控权交回给上一层函数来执行,也就是开始执行刚刚所有test()函数没来得及输出的最后一个echo。
    * o的一层是l,也就是输出l,l的上一层是l, l的上一层是e,e的上一层是h,也就是输出h,h没有上一层所以呢输出的内容就是hello<-->olleh
    */
    function test($str){
        if (strlen($str)>0){
        test(substr($str,1));
    }
    echo substr($str,0,1);
    return ;
    }
    test("hello"); //olleh

  • 相关阅读:
    python基础-6 字典相关练习题
    python基础-5
    python基础-4
    python基础-3
    读书笔记:深入理解ES6 (七)
    读书笔记:深入理解ES6 (六)
    读书笔记:深入理解ES6 (五)
    读书笔记:深入理解ES6 (四)
    读书笔记:深入理解ES6 (三)
    读书笔记:深入理解ES6 (二)
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/7744766.html
Copyright © 2011-2022 走看看