• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 7年前 (2018-06-21) 146次浏览 已收录 0个评论

 

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

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

<?php
//   File name test1.inc.php

http://www.gaodaima.com/47520.htmlPHP避免重复申明函数的解决方案_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避免重复申明函数的解决方案_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP避免重复申明函数的解决方案_php

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址