国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP避免重復申明函數的解決方案

2024-05-04 23:02:36
字體:
來源:轉載
供稿:網友

 

   我們知道,在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
?>

   
現在,我們不再怕同時包含一個包多次或定義一個函數多次會出現的錯誤了。這樣直接帶給我們的好處是,維護我們的程序變得比較輕松了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达日县| 石狮市| 沅江市| 长寿区| 大冶市| 衡水市| 汉中市| 磐安县| 通城县| 渝中区| 滨州市| 宾阳县| 林口县| 清河县| 黄大仙区| 汾阳市| 台中市| 保定市| 邹平县| 简阳市| 固阳县| 漳州市| 修武县| 宁晋县| 峨边| 宁武县| 民权县| 云梦县| 岳阳县| 南江县| 友谊县| 丰镇市| 达日县| 通山县| 丹凤县| 德格县| 保亭| 兰考县| 新建县| 都昌县| 东至县|