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

****************************** 第五章 代码重用与函数编写 *********************************

代码重用的好处;使用require()和include()函数;函数介绍;定义函数;使用参数;理解作用域;

返回值;参数的引用调用和值调用;实现递归;使用命名空间

*************** 5.1 代码重用的好处

1.成本低;2.可靠性;3.一致性:系统的外部接口是一致的,其中包括用户接口和系统的外部接口。

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

使用一条require()或include()语句,可以将一个文件载入到PHP脚本中,这个文件可以包含任何希望在一个脚本中输入的内容,

其中包括PHP语句、文本、HTML标记、PHP函数或PHP类。

(同C语言的#include一样)

两者区别:函数失败后,require()函数将给出一个致命错误,而include()只是给一个警告。

变体函数:require_once()和include_once(),确保包含的文件只能被引入一次。通常用于页眉和脚注(header and footer)。

*************** 5.2.1 文件扩展名和require()函数

现在有一个reusable.php文件:

<?php
echo "Here is a very simple PHP statement.<br />";
?>

还有一个main.php文件:

<?php
echo "This is the main file.<br />";
require(‘reusable.php‘);
echo "The script will end now.<br />";
?>

我们注意到在main.php文件中使用了require()函数引用了reusable.php文件,那么打印结果为:

This is the main file.
Here is a very simple PHP statement.
The script will end now.

注意:当使用require()语句时,必须注意处理文件扩展名和PHP标记的不同方式。

可以使用任意扩展名来命名包含文件,但要尽量遵循一个规则,将扩展名命名为.inc或.php。
 
 .inc文件(include file):实际上,文件的后缀对于文件包含无所谓,一般使用inc为后缀,这样能体现该文件的作用。

*************** 5.2.2 使用require()制作Web站点的模板

如果一个网站有几十上百个网页,而且他们风格一致,只是有一些细微的改变,相对于剪切粘贴数十个、数百个甚至数千个页面,直接重用各个页面中通用的

HTML代码部分是一个更好的办法。

例子:home.html —— TLA咨询公司主页的HTML脚本

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TLA Consulting Pty Ltd</title>
    <style type="text/css">
        h1{
            color:white;
            font-size: 24pt;
            text-align: center;
            font-family: Arial,sans-serif;
        }
        .menu{
            color: white  ;
            font-size: 12pt;
            text-align: center;
            font-family: Arial,sans-serif;
            font-weight: bold;
        }
        td{
            background: black;
        }
        p{
            color: black;
            font-size: 12pt;
            text-align: justify;
            font-family: Arial,sans-serif;
            font-weight: bold;
        }
        a:link,a:visited,a:active{
            color: white;
        }
    </style>
</head>
<body>
<!-- page header -->
<table width="100%" cellpadding="12" cellspacing="0" border="0">
    <tr bgcolor="black">
        <td align="left"><img src="logo.gif" alt="TLA logo" height=70 width=70></td>
        <td>
            <h1>TLA Consulting</h1>
        </td>
        <td align="right"><img src="logo.gif" alt="TLA logo" height=70 width=70></td>
    </tr>
</table>

<!-- menu -->
<table width="100%" bgcolor="white" cellpadding="4" cellspacing="4">
    <tr >
        <td width="25%">
            <img src="s-logo.gif" alt="" height=20 width=20> <span class="menu">Home</span></td>
        <td width="25%">
            <img src="s-logo.gif" alt="" height=20 width=20> <span class="menu">Contact</span></td>
        <td width="25%">
            <img src="s-logo.gif" alt="" height=20 width=20> <span class="menu">Services</span></td>
        <td width="25%">
            <img src="s-logo.gif" alt="" height=20 width=20> <span class="menu">Site Map</span></td>
    </tr>
</table>

<!-- page content -->
<p>Welcome to the home of TLA Consulting.
    Please take some time to get to know us.</p>
<p>We specialize in serving your business needs
    and hope to hear from you soon.</p>

<!-- page footer -->
<table width="100%" bgcolor="black" cellpadding="12" border="0">
    <tr>
        <td>
            <p class="foot">&copy; TLA Consulting Pty Ltd.</p>
            <p class="foot">Please see our <a href="legal.php">legal information page</a></p>
        </td>
    </tr>
</table>
</body>
</html>

我们可以看到这个文件由许多不同的代码部分组成:

HTMl标题包含了在该页面中用到的级联风格样式单(CSS)中的样式定义==>

<head>
    <meta charset="UTF-8">
    <title>TLA Consulting Pty Ltd</title>
    <style type="text/css">
        h1{
            color:white;
            font-size: 24pt;
            text-align: center;
            font-family: Arial,sans-serif;
        }
        .menu{
            color: white  ;
            font-size: 12pt;
            text-align: center;
            font-family: Arial,sans-serif;
            font-weight: bold;
        }
        td{
            background: black;
        }
        p{
            color: black;
            font-size: 12pt;
            text-align: justify;
            font-family: Arial,sans-serif;
            font-weight: bold;
        }
        a:link,a:visited,a:active{
            color: white;
        }
    </style>
</head>

标有“page header”部分显示了公司的名称(TLA Consulting)和徽标(logo.gif);

标有“menu”部分创建了页面的导航条;

标有“page content”部分是页面中的文本;

然后是脚注。

我们将这个文件分割,然后给这些部分分别命名为header.php, home.php, footer.php。

这样,文件header.php 和 footer.php中都包含有在其他页面中可以重用的代码。

像下面这样:

1.我们用home.php代替home.html,它包含页面内容和两个require语句:

home.php —— TLA公司主页的php脚本

<?php
require(‘header.inc‘);
?>
<!-- page content -->
<p>Welcome to the home of TLA Consulting.
Please take some time to get to know us.</p>
<p>We specialize in serving your business needs and hope to hear from you soon.</p>
<?php
require(‘footer.inc‘);
?>

2.文件header.inc包含了页面使用的级联风格样式单定义以及公司名称和导航

header.inc —— 所有TLA网站的页面可重复使用的页眉

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TLA Consulting Pty Ltd</title>
    <style type="text/css">
        h1{
            color:white;
            font-size: 24pt;
            text-align: center;
            font-family: Arial,sans-serif;
        }
        .menu{
            color: white  ;
            font-size: 12pt;
            text-align: center;
            font-family: Arial,sans-serif;
            font-weight: bold;
        }
        td{
            background: black;
        }
        p{
            color: black;
            font-size: 12pt;
            text-align: justify;
            font-family: Arial,sans-serif;
            font-weight: bold;
        }
        a:link,a:visited,a:active{
            color: white;
        }
    </style>
</head>
<body>
<!-- page header -->
<table width="100%" cellpadding="12" cellspacing="0" border="0">
    <tr bgcolor="black">
        <td align="left"><img src="logo.gif" alt="TLA logo" height=70 width=70></td>
        <td>
            <h1>TLA Consulting</h1>
        </td>
        <td align="right"><img src="logo.gif" alt="TLA logo" height=70 width=70></td>
    </tr>
</table>

<!-- menu -->
<table width="100%" bgcolor="white" cellpadding="4" cellspacing="4">
    <tr >
        <td width="25%">
            <img src="s-logo.gif"  height=20 width=20> <span class="menu">Home</span></td>
        <td width="25%">
            <img src="s-logo.gif"  height=20 width=20> <span class="menu">Contact</span></td>
        <td width="25%">
            <img src="s-logo.gif"  height=20 width=20> <span class="menu">Services</span></td>
        <td width="25%">
            <img src="s-logo.gif"  height=20 width=20> <span class="menu">Site Map</span></td>
    </tr>
</table>

我们注意到,这里相当于从home.html切了一部分

3.footer.inc包含页面底部脚注处显示的表格

footer.inc —— 所有TLA网站的页面可重复使用的脚注

<!-- page footer -->
<table width="100%" bgcolor="black" cellpadding="12" border="0">
    <tr>
        <td>
            <p class="foot">&copy; TLA Consulting Pty Ltd.</p>
            <p class="foot">Please see our <a href="legal.php">legal information page</a></p>
        </td>
    </tr>
</table>
</body>
</html>

4.运行home.php文件,效果与home.html一样

运行结果:

使用上述方法很容易就使网站拥有统一的风格。

(注意:书上的文件后缀前后不同,引用的文件要与目录中存在的文件一致)

最重要的是,用这种方法,我们也很容易修改脚注和页眉(只需要进行一次修改)。

******************** 5.2.3 使用auto_prepend_file 和 auto_append_file

在配置文件php.ini中有两个选项:auto_prepend_file , auto_append_file,通过这两个选项来设置页眉和脚注,可以

保证它们在每个页面的前后被载入,如果载入的文件不存在,则产生警告。

如果使用了这些指令,就不需要输入include()语句,但页眉和脚注不再是页面的可选内容。

(一般不使用这种方法)

时间: 2025-01-03 04:24:38

第五章 代码重用与函数编写(1)的相关文章

PHP代码重用与函数编写

代码重用与函数编写 1.使用require()和include()函数 这两个函数的作用是将一个文件爱你载入到PHP脚本中,这样就可以直接调用这个文件中的方法.require()和include()几乎是一样的,唯一的区别就是函数失败后前者给出一个致命错误,后者给出一个警告变体:require_once()和include_once()确保一个包含的文件只能被引入一次,多用这个 2.在PHP中使用函数 2.1调用函数 如果一个函数已经被定义了,且该函数在这个脚本里面,则可以直接调用,类似调用函数

从零开始攻略PHP(6)——代码重用与函数编写的一些注意事项

一个新的项目是这样创建的:它将已有的可重新利用的组件进行组合,并将新的开发难度降低到最小. 代码重用的好处:降低成本.提升可靠性和一致性. 1.使用require()和include()函数 使用一条require()或include()语句,可以将一个文件载入到PHP脚本中. require()和include()几乎相同.区别是函数失败后,require()函数将给出一个报错.Include()给的则是警告. 变体函数分别是require_once()和include_once().作用是确

PHP学习笔记5:代码重用和函数

读<PHP和MySQL Web开发>笔记合集: http://my.oschina.net/bluefly/blog/478580 1. 代码重用的好处 成本.可靠性.一致性 注意:只要原来的代码是模块化的而且编写良好,那么重复使用代码还会节省很多工作.在工作时,可以试着辨认一下今后可能再次要调用的代码段. 2. require() 与被包含代码执行问题 如果希望一个被包含文件中的PHP代码能够被当成PH代码进行处理,必须将PHP代码放到PHP标记之间(不管被包含代码的文件是什么后缀,jpg.

Day4_代码重用与函数

知识点速记: 重用代码的方法:脚本包含require().include(); 全局配置文件php.ini(auto_prepend_file/auto_append_file); 目录配置文件.htaccess(auto_prepend_file/auto_append_file) 命名规范:函数名不区分大小写:变量名区分大小写 php不支持函数重载 函数体内可以包含函数声明 函数体内可以退出/插入php标记 global关键字可以转换局部变量为全局变量 参数的传递:&$   (值得传递:$)

OpenGL蓝宝书第五章代码勘误以及惯性坐标系去解释模型变换

如果你也发现按照教程代码完成贴图时,你会底面的坐标和平常顶点坐标正负相反,比如-1.0f, -1.0f, -1.0f这个顶点对应的却是世界坐标中1.0f,-1.0f,1.0f 问题究竟出现在哪里? 原来是:objectFrame.GetCameraMatrix(mObjectFrame); //原书中的代码为GetMatrix,获取了objectFrame的朝向,导致顶点和纹理的对象关系出现了相反内容 objectFrame中的朝向和OpenGL的默认朝向相反,getMatrix的操作会导致mo

《C++编程艺术》第五章 下载工具源码

今天看了书上的第五章代码,看了后想编译起来结果报了好些错,修改完后已经可以正确的编译起来,供大家下载研究 // Header file for downloader. Call this file dl.h. #include <iostream> #include <string> #include <windows.h> #include <wininet.h> #include <fstream> using namespace std;

第五章函数

第五章 函数 5.1 函数的本质及应用场景 截至目前:面向过程编程(可读性差/可重用性差) 对于函数编程: 本质:将N行代码拿到别处并给他起一个名字,以后通过名字就可以找到这段代码并执行 应用场景: 代码重复执行 代码特别多超过一屏,可以选择通过函数进行代码的分割 # 面向过程编程 user_input = input('请输入角色:') if user_input == '管理员': import smtplib from email.mime.text import MIMEText fro

第五章 Python 函数

第1章 为什么要使用函数 #1.代码的组织结构不清晰,可读性差 #2.遇到重复的功能只能重复编写实现代码,代码冗余 #3.功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维护难度极大 第2章 函数是什么 定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要执行这个函数,只需要调用函数名即可. 特性: 1.减少重复代码 2.使程序变的可扩展 3.使程序变得易维护 函数的使用必须遵循:先定义,后调用 2.1 函数的分类 1. 内置函数:python解释器自带的函数,py

第五章 shell函数的定义、执行、传参和递归函数

第五章 shell函数的定义.执行.传参和递归函数 Bash(Bourne Again shell)也支持函数,在编写大型复杂脚本的时候,可以用函数把代码编写成一个一个功能相对独立的代码块,使代码模块块.结构清晰.有效的减少程序的代码量.但是bash shell是一种解释性语言,执行效率没有编译性语言高. shell函数的定义 格式一:( function name() { command sequence (命令序列) } 格式二: name() { command sequence (命令序