动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   PHP → 阅读文章

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

作者来源: 
阅读 1040 人次 , 2006-4-18 15:25:00 

 

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

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

<?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.phptest2.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编程的文件资源管理一例
· 下一篇:在Windows 95/98/NT上安装 Apache
· 在PHP3中实现SESSION的功能(二)
· 则表达式判断email和URL
· 理论上实现真正意义的无限级别菜单
· oracle资料库函式库
· 浅析php中实现多线程


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077