zoukankan      html  css  js  c++  java
  • DAY16

    8.1函数介绍

    说明:函数的作用在于对一个功能的封装,封装后在别的页面中引入并调用,可以节省代码量,可以冗余。

    8.1.1函数的定义

    Function 函数名(【形参1】【,参数2】【,形参n......){

    要封装到函数的代码;

    return 返回值】;

    }

    8.1.2函数的调用

    说明:直接使用需要调用的函数的名就可以了。

    函数名(【实参1】【,实参2】【,实参n......);

    8.1.3函数的相关细节

    1.函数定义时的形参,不是一个具体的数值,而是需要接收“实参”的工具而已,形参必须是变量。

    2.形参可以给默认值,且可以是多种类型的数据

    3.实参就是要给函数传递数据用的工具,可以是具体的值,可以是变量,实参必须和形参“一一对应”;

    4.函数名遵循变量的定义规则:字母、数字、下划线且不能以数字开头.

    5.函数名不能重复;

    6.Return返回值,如果写了就会返回当前要返回的值,如果没写其实默认返回一个1或者null;

     

    7.return如何返回多个值;

    8.返回值必须使用一个变量到函数的调用者这个位置进行接收。

    9.如果传递多个值--数组

     

    10.函数的变量称为“局部变量”,不能在函数外使用。


    8.2函数的调用机制

    8.2.1代码:

     

    8.2.2说明:

    1.函数的调用者把实际的数据传递给函数的形参,这个时候的形参只能在函数内使用。

    2.函数在运行代码时会新建一个新空间来运行函数内的代码

    3.运行代码后,如果有返回值,把结果返回给函数的调用者,这个时候运行函数的这个新的空间销毁

    8.2.4图解:

    8.2.4其他说明:引用传递

    说明:有的函数可以直接使用全局变量,这个时候是引用传递


    8.3函数的封装性

    题:使用一个表单,输入任意数字,使之可以在2816进制到10进制或10进制到2816进制之间转换,形式大致如下如下:

    案例:

    说明:在一个函数中调用另一个函数,这个时候称为“回调”;

    案例:

    说明:匿名函数就是没有名称的函数,这个时候需要用一个变量来存储函数。

    案例:

     

    说明:在一个函数内部再定义函数,这个时候里面的函数只能在函数内使用,不能在外部使用,防止外部人调用函数,这种函数方式不多,面向对象中都是这种方式。

    案例:

    说明:在一个函数内部再次有条件调用自己(当前函数),这个时候就称为“递归调用”,即自己调用自己。

    代码:

    图解:

    注意:

    1.递归调用必须有一个可以退出的条件,否则无法退出递归调用,就会成死归,也就是说必须逐渐的退出。

    2.在递归调用时每次调用一次函数都开辟一个新栈,这些栈是没有关系的。

    案例:

    斐波那契数列:每个数字都是由前面的两个数字的和,第一个和第二个除外。

    1,1,2,3,5,8,13,21,34.............................

    问:给一个数看当前数的值是多少。

    代码实现:准备模板

    1.创建目录

     

    2.创建配置文件

    3.实现功能--封装函数

    <?php
    //入口文件
    //引入配置文件
    require_once './config/conn.php';
    
    //调用数据库函数库来获取数据
    require_once LIB_ROOT . 'MySQL_func.php';
    //var_dump($link_mysql_info);
    //调用链接函数
    mysql_link($link_mysql_info['host'],$link_mysql_info['root'],$link_mysql_info['pass'],$link_mysql_info['charset'],$link_mysql_info['dbname']);
    
    //可以调用获取所有数据的函数
    $arr = select_data('php07_student');

    var_dump($arr);

    /*

    array (size=5)

      'host' => string 'localhost' (length=9)

      'root' => string 'root' (length=4)

      'pass' => string '' (length=0)

      'charset' => string 'utf8' (length=4)

      'dbname' => string 'php07' (length=5)

     */

    //引入首页的模板

    require_once TEMPS_ROOT_HOME . 'index.html';

    ?>

  • 相关阅读:
    103. 二叉树的锯齿形层次遍历
    102. 二叉树的层次遍历
    94. 二叉树的中序遍历
    Redis和数据库 数据同步问题
    203. 移除链表元素
    19. 删除链表的倒数第N个节点
    237. 删除链表中的节点
    141. 环形链表
    2. 两数相加
    143. 重排链表
  • 原文地址:https://www.cnblogs.com/qianjilou/p/6369073.html
Copyright © 2011-2022 走看看