中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > PHP > PHP综合
PHP避免重复申明函数的解决方案
作者:jincoo 时间:2001-12-10 11:29 出处:互联网 责编:chinaitpower
              摘要:PHP避免重复申明函数的解决方案

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
?>

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

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有