e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 程序开发 >> PHP教程 >> PHP避免重复申明函数的解决方案 >> 教程正文
 
教程搜索
 
 
相关教程
  • 利用Editplus2的用户工具
  • 遍历FTP下目录和文件生成
  • 关于PHP与Sybase数据库的
  • 搜索引擎技术核心揭密(PH
  • PHP,21世纪的霸主(德国
  • PHP,21世纪的霸主(之4)
  • PHP避免重复申明函数的解
  • 怎么利用PHP去ping一个地
  • 用PHP判断oicq是否在线的
  • PHP4.23在WindowsXP下的I
  • PHP调用java类的两种方法
  • Java经典问题
  • JDBC学习笔记!
  • Java基础FAQ
  • shell中俄罗斯方块
  • 开始学php,发个贴纪念一下
 
 
赞 助 商
 
 
PHP避免重复申明函数的解决方案
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

PHP避免重复申明函数的解决方案

jincoo(来自RUTED.COM的爬虫)

我们知道,在PHP中不能使用相同的函数名定义函数两次,如果这样,程序执行的时候就会出错。

而我们会把一些常用的自定义函数提取出来,放到一个Include文件中,然后别的文件就可以通过Include或require来调用这些函数,下面是一个例子:

<?php

// File name test1.inc.php

function fun1()

{

// do any fun1

}

function fun2()

{

// do any fun2

}

?>

<?

// File name test2.inc.php

require("test1.inc.php");

function fun1()

{

// do any fun1

}

function fun3()

{

// do any fun3

}

?>

<?

// File name test.php

//可能需要包含其他的文件

require("test1.inc.php");

require("test2.inc.php");

// do any test

?>

在test1.inc.php和test2.inc.php中同时定义了fun1这个函数,我虽然知道这两个函数实现的功能完全相同,但是我并不确定,或者说我不想明确的知道,一个函数是不是在某个“包”(INCLUDE)中定义了,另外的一个问题是,我们不能包含一个包两次,但是我并不想在这里花过多的时间进行检查,上面的例子,执行test.php会产生很多错误。

在C语言中,提供了预定义功能可以解决这个问题:

#ifndef __fun1__

#define __fun1__

// do any thing

#endif

PHP并不提供这样的机制,但是我们可以利用PHP的灵活性,实现和C语言的预定一同样的功能,下面举例如下:

<?php

// File name test1.inc.php

if ( !isset(____fun1_def____) )

{

____fun1_def____ = true;

function fun1()

{

// do any fun1

}

}

if ( !isset(____fun2_def____) )

{

____fun2_def____ = true;

function fun2()

{

// do any fun2


}

}

?>

<?

// File name test2.inc.php

require("test1.inc.php");

if ( !isset(____fun1_def____) )

{

____fun1_def____ = true;

function fun1()

{

// do any fun1

}

}

if ( !isset(____fun3_def____) )

{

____fun3_def____ = true;

function fun3()

{

// do any fun3

}

}

?>

<?

// File name test.php

//可能需要包含其他的文件

require("test1.inc.php");

require("test2.inc.php");

// do any test

?>

现在,我们不再怕同时包含一个包多次或定义一个函数多次会出现的错误了。这样直接带给我们的好处是,维护我们的程序变得比较轻松了。


  • 上一篇教程: 怎么利用PHP去ping一个地址
  • 下一篇教程: PHP,21世纪的霸主(之4)
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.