在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 網頁設計教程 > 詳細頁面

如何使用php的函數變量數組完成代碼結構的改變(附示例)

如何使用php的函數變量數組完成代碼結構的改變(附示例)

更新時間:2025-12-04 文章作者:未知 信息來源:網絡 閱讀次數:

網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立...
網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。
本篇文章給大家帶來的內容是關于如何使用php的函數變量數組實現代碼結構的改變(附示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

項目越做越大,代碼越來越亂,維護困難。原因很多吧。起初為了實現功能,并沒有注重代碼的結構,外包公司嘛。雖然公司的項目負責人一直考慮復用、封裝,但是我覺得基本上沒有達到想要的效果。因為整個代碼中沒有沒有用到設計模式,這樣結構肯定好不到哪去。雖然很多功能都封裝了,但是分層特別的亂,有種為了封裝而封裝的感覺。其實,很多東西我也不懂,但是寫完代碼之后,偶爾還是會去把代碼的結構稍微的修改修改,盡量的少給自己挖坑吧。

代碼結構的問題

接口有大量的方法,調用接口時需要使用 switch 進行判斷,大致結構如下:

private function makeXML($xmlName, $xmlNameParam)
{
    $requestData = null;
    switch ($xmlName) {
        // ...
        case 'sendOrder':
            $requestData = $this->sendOrder($xmlNameParam);
            break;
        case 'ecfareQuery':
            $requestData = $this->ecfareQuery($xmlNameParam);
            break;
        case 'getInterAV':
            $requestData = $this->getInterAV($xmlNameParam);
            break;
        // ...
    }
    
    return $requestData;
}

以上 case 中都是調用對應的方法來拼接接口所需的 XML 信息的。

方法的參數分別傳遞了拼接接口方法的名稱和參數。

這樣的判斷結構代碼感覺不好管理,增加一個方法方法,就需要增加一個 case 調用,而且看的時候也比較亂。

代碼結構的改進

因此進行了相關的改進,改進方式如下:

1、先定義一個方法數組,用于保存方法名,定義如下

protected $arr = [];
public function __construct()
{
    // 初始化接口方法
    $this->arr = [
        'getAV'                    => 'getAV',
        'sendOrder'                => 'sendOrder',
        'ecfareQuery'              => 'ecfareQuery',
        'getInterAV'               => 'getInterAV',
        // ...
    ];
}

將來該接口下有了新的方法,直接添加到數組里就可以了。這樣可以省去大量的 switch case 的判斷。

2、修改 switch 的結構,代碼如下:

private function makeXML($xmlName, $xmlNameParam)
{
    $requestData = null;
    
    $fun = $this->arr[$xmlName];
    
    $requestData = $this->$fun($xmlNameParam);
    
    return $requestData;
}

將 switch case 的結構改成了以數組下標的方式進行調用的方式。這樣就把所有的方法統一管理了起來。

以上思路來自于 MFC 框架對 Windows 消息的處理。

相當于 C 語言中的函數指針數組,或 C# 里的委托。

知識補充:

面向過程的函數變量(往上找的)

function come() {                   //定義com函數
  echo "來了<p>";
}
function go($name = "jack") {       //定義go函數
  echo $name."走了<p>";
}
function back($string)              //定義back函數
{
  echo "又回來了,$string<p>";
}
$func = "come";                     //聲明一個變量,將變量賦值為“come”
$func();                            //使用變量函數來調用函數come()
$func = "go";                       //重新給變量賦值
$func("Tom");                       //使用變量函數來調用函數go()
$func = "back";                     //重新給變量賦值
$func("Lily");                      //使用變量函數來調用函數back();

對于PHP中面向對象的方式如下(自己實現的):

<?php
class test
{
    public $arr = [];
    
    public function __construct()
    {
        $this->arr = array(
            'func1'=>'func1',
            'func2'=>'func2',
            'func3'=>'func3',
            'func4'=>'func4',
            'func5'=>'func5',
        );
    }
    public function submit($func, $str)
    {
        $f = $this->arr[$func];
        $this->$f($str);
    }
    static public function func1($str)
    {
        print 'func1' . ' ' . $str . "\n";
    }
    static public function func2($str)
    {
        print 'func2' . ' ' . $str . "\n";
    }

    public function func3($str)
    {
        print 'func3' . ' ' . $str . "\n";
    }
    private function func4($str)
    {
        print 'func4' . ' ' . $str . "\n";
    }
    private function func5($str)
    {
        print 'func5' . ' ' . $str . "\n";
    }
}
$t = new test();        // 實例化類
$f = $t->arr['func1'];
test::$f('abc');        // func1 func2 是靜態方法
$f = $t->arr['func2'];
test::$f('abc');
$f = $t->arr['func3'];  // func3 的調用
$t->$f('abc');
// func4 func5 的調用需要使用 submit 方法進行分發
$t->submit('func4', 'abc');
$t->submit('func5', 'bcd');

以上代碼的輸出結果如下:

func1 abc
func2 abc
func3 abc
func4 abc
func5 bcd

以上就是如何使用php的函數變量數組實現代碼結構的改變(附示例)的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 欧美成人黑人猛交| 日本中文字幕精品—区二区| 草草久久久无码国产专区| 亚欧在线免费观看| ijzzijzzij亚洲大全| 成人在线看视频| 天堂8在线天堂资源bt| 人人干人人干人人| 黄色动漫网站入口| 黄色录像特级片| 成年人免费大片| 欧美一级视频免费看| aaaaaaaa毛片| 在线能看的av网站| www.欧美日本| 亚洲欧洲日产国码无码久久99| 老司机av福利| 污视频网站观看| 国产 porn| 黄色片视频在线播放| 日本人体一区二区| 久久久天堂国产精品| 亚洲国产欧美91| 亚洲黄色片免费看| 免费av不卡在线| 国产一线二线三线在线观看| 91国视频在线| 无码aⅴ精品一区二区三区浪潮 | 亚洲区成人777777精品| 亚洲第一区第二区第三区| 四季av一区二区| 91精品无人成人www| 在线看的黄色网址| 亚洲 激情 在线| 天天看片天天操| 污视频在线观看免费网站| 91视频福利网| 色哟哟免费网站| 四虎4hu永久免费入口| 麻豆视频传媒入口| 亚洲 欧美 日韩 国产综合 在线| 韩日视频在线观看| 黄色一级视频在线播放| 国模杨依粉嫩蝴蝶150p| 亚洲77777| www.黄色网址.com| 亚洲 欧美 综合 另类 中字| 18禁免费无码无遮挡不卡网站| 欧美视频第一区| 国产三级国产精品国产专区50| 操人视频免费看| 每日在线观看av| 黄色永久免费网站| 久久国产精品免费观看| 成人毛片视频网站| 国产福利精品一区二区三区| 国产内射老熟女aaaa| 超碰网在线观看| 中文国产在线观看| 久久亚洲中文字幕无码| xx欧美撒尿嘘撒尿xx| 国产在线xxxx| 永久免费的av网站| 国产色一区二区三区| 奇米视频7777| 国产中文字幕视频在线观看| 亚洲欧美日韩综合网| 真人抽搐一进一出视频| 久久久久久久久久久久久久久国产| 精品国产三级a∨在线| 日本黄色三级大片| 996这里只有精品| 亚洲va综合va国产va中文| 日韩中文字幕在线免费| 久久久久久久久久久久久久久国产 | 一道本在线观看视频| 成人免费视频久久| 喜爱夜蒲2在线| 日韩av一卡二卡三卡| 那种视频在线观看| 久久这里只有精品23| 强伦女教师2:伦理在线观看| 亚洲黄色av网址| 激情网站五月天| 久久成人福利视频| 日本丰满少妇黄大片在线观看| 免费国产成人av| 久久国产成人精品国产成人亚洲| xxxxxx在线观看| 国产91av视频在线观看| 狠狠干狠狠操视频| 欧美男女交配视频| 奇米影音第四色| 精品久久久久久久无码| 欧美一级片中文字幕| 欧美 日韩 国产 高清| 欧美精品在欧美一区二区| 国产福利片一区二区| 日韩欧美中文在线视频| 国产性生活一级片| 国产免费中文字幕| 日韩视频在线免费播放| 日本高清免费在线视频| 亚洲天堂av一区二区| 狠狠干狠狠操视频| 日本特级黄色大片| 日本在线视频www色| 无码日本精品xxxxxxxxx| youjizz.com亚洲| 超碰人人爱人人| 国产毛片久久久久久国产毛片| 男人插女人视频在线观看| 欧美a v在线播放| 十八禁视频网站在线观看| 91看片在线免费观看| 中文字幕亚洲欧洲| 国产精品videossex国产高清| 国产 欧美 日韩 一区| 91视频 -- 69xx| 超碰成人在线播放| 超碰91在线播放| 黄色国产一级视频| 久草福利视频在线| 777久久精品一区二区三区无码| 日本中文字幕网址| www欧美激情| 国产精品一色哟哟| 日本 片 成人 在线| 99久re热视频精品98| 免费成人在线视频网站| 伊人五月天婷婷| 日本精品免费在线观看| 一区二区三区欧美精品| 日韩在线观看a| 一区二区三区 日韩| 乱熟女高潮一区二区在线| 波多野结衣作品集| 久久综合久久网| 蜜桃福利午夜精品一区| 欧美二区在线视频| 只有这里有精品| 日本成人黄色网| 老太脱裤子让老头玩xxxxx| 老司机午夜性大片| 免费裸体美女网站| 中国女人做爰视频| 天天操狠狠操夜夜操| 国产91对白刺激露脸在线观看| 中国 免费 av| 污视频网址在线观看| 免费在线观看的毛片| 波多野结衣av一区二区全免费观看| 在线观看国产一级片| 国产精品亚洲a| 一女被多男玩喷潮视频| 日韩在线观看a| 视色,视色影院,视色影库,视色网| 亚洲一级免费观看| www.色偷偷.com| 久久久久久三级| 女人另类性混交zo| 欧美性大战久久久久xxx| 欧美久久久久久久久久久久久| 欧美与动交zoz0z| 黄色片免费网址| 在线播放免费视频| 香蕉视频xxxx| www.久久com| 天天做天天爱天天高潮| gogogo免费高清日本写真| 四虎1515hh.com| eeuss中文| 激情五月婷婷六月| 欧美在线观看www| 99热在线这里只有精品| 亚洲 高清 成人 动漫| 欧美精品一区二区三区免费播放| 国产亚洲综合视频| 日av中文字幕| 日本中文字幕影院| 日韩视频一二三| 久久久久99精品成人片| 99精品视频在线看| 最新中文字幕2018| 欧美国产日韩在线视频| 黄色一级片网址| 9色porny| 欧美日韩怡红院| 亚洲一区二区图片| 亚洲色婷婷久久精品av蜜桃| av动漫在线播放| 久草青青在线观看| 青青草久久伊人| 国产精品又粗又长| 影音先锋成人资源网站| 亚洲 欧美 综合 另类 中字| 不卡av免费在线| 亚洲一级片av| 伊人成色综合网| www.日本久久|