代码改变世界

第五章 代码重用与函数编写(2)

2016-08-04 18:25  yojiaku  阅读(188)  评论(0编辑  收藏  举报

******************** 5.3 在PHP中使用函数

函数是一个给出了调用接口的自包含模块,可以执行任务,可以有返回值。

*** 调用函数

【1】最简单的调用方式:

function_name();


 
 例子:phpinfo()==>显示已安装的PHP版本、关于PHP的信息、web服务器的设置和众多PHP和服务器变量的值。

【2】带参数的函数调用:function_name('parameter');

 参数可以是任意数据类型,但是通常特定的函数有特定的数据类型,通过函数原型来了解函数所需的参数类型和参数个数。

【3】函数调用不区分大小写

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

********************* 5.5 了解函数的基本结构

【1】声明:以关键字function开始

【2】给出函数的名称和必要的参数

【3】给出每次调用这个函数时要执行的代码

例子:

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

  

用如下命令调用:

my_function();

我们在使用的时候,通常将经常用到的函数单独包含在一个文件中,然后用一个require()语句使用。

********************** 5.6 使用参数

例子:

function create_table($data,$border=1,$cellpadding=4,$cellspacing=4)
{
    echo "<table border='\".$border\"' cellpadding='\".$cellpadding\"' cellspacing='\".$cellspacing\"'>";
    reset($data);  //Remember this is used to point to the beginning
    $value = current($data);
    while($value)
    {
        echo "<tr><td>".$value."</td></tr>\n";
        $value = next($data);
    }
    echo "</table>";
}

$my_array = array("Line one","Line two","Line three");
create_table($my_array,3,8,8);

  

注意:create_table()中第一个参数是必须的,后面三个参数都是可选的,因为已经在函数中为它们定义了默认值。


********************** 实现递归

一般用于浏览动态数据结构,例如连接列表和树。

例子:

function reverse_r($str)
{
    if(strlen($str)>0)
    {
        reverse_r(substr($str,1));
    }
    echo substr($str,0,1);
    return;
}

function reverse_i($str)
{
    for($i=1;$i<=strlen($str);$i++)
    {
        echo substr($str,-$i,1);
    }
    return;
}

reverse_r('Hello');
echo "<br />";
reverse_i('Hell0');

  

reverse_r($str) 使用的是递归,reserve_i($str)使用的是循环。

注意:一般不用递归。

*** 名称空间

通常,名称空间是一个抽象的容器,它可以包含一组标识符;可以是定义的函数、常量以及类。

一个名称空间中的所有函数、类和常量都将自动冠以名称空间的空间前缀。

非全路径的类、函数和常量名称将在运行时解析,在查看全局空间之前,将首先查看名称空间。