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';

?>

原文地址:https://www.cnblogs.com/qianjilou/p/6369073.html