第5章 代码重用与函数编写

5.1 代码重用的好处

通过重复使用代码来避免编写新的代码,降低成本,增加可靠性,提高一致性。

5.2 使用require()和include()函数

使用这两个语句可以将一个文件载入到php脚本中,二者的唯一区别在于函数失败后,require()函数将给出一个致命的错误,而include()只是给出一个警告。

5.3 在PHP中使用函数

  1. 调用函数
  • function_name();
  • function_name(parameter);
  • function_name($variable);
  1. 调用未定义的函数

错误信息会告诉我们出现在哪个文件的哪一行,需要我们检查:

  • 函数名称的拼写是否正确
  • 这个函数是否存在于所用的PHP版本中
  1. 理解字母大小写和函数名称
    函数调用不区分大小写,但应该尽量保持一致,但是变量名区分大小写

5.4 理解为什么要定义自己的函数

如果这段代码将在一个脚本的多处或是多个脚本中都要使用,最明智的方法是将这段代码声明为函数。声明一个函数可以让我们像内置函数那样使用自己的代码,只要简单地调用这个函数并提供给它必需的参数。

5.5 了解基本的函数结构

函数声明:

function my_function() {
    echo "My function was called";
}

函数命名的限制:

  • 不能和已有的函数重名
  • 只能包含字母、数字和下划线
  • 函数名称不能以数字开始

5.6 使用参数

要使函数正常工作,它们中的大多数都需要一个或多个参数,参数允许将数据传给函数。

5.7 理解作用域

变量的作用域可以控制变量在哪里是可见并且可用的

  • 在函数内部声明的变量作用域是从声明它们的那条语句开始到函数末尾,被称为局部变量
  • 在函数外部声明的变量作用域是从声明它们的那条语句开始到文件末尾,被称为全局变量
  • 特殊的超级全局变量在函数内部和外部都是可见的
  • 使用require()和include()并不影响作用域
  • 关键字global可以用来手动指定一个在函数中定义或使用的变量具有全局作用域
  • 通过调用unset($variable_name)可以手动删除变量,如果变量被删除,它就不在参数所指定的作用域中了

5.9 使用Return关键字

return将终止函数的执行,执行特定任务但又不返回任何具体值的函数将返回true或false来表示函数是否执行成功

5.10 实现递归

递归函数就是函数调用自己本身,特别适用于浏览动态数据结构,例如连接列表和树。很多情况夏,递归可以用来取代循环,但是比循环慢而且要占用更多内存,所以尽可能多用些循环