91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php方法太多參數的解決方法

發布時間:2021-11-25 10:05:33 來源:億速云 閱讀:307 作者:小新 欄目:編程語言

這篇文章主要介紹了php方法太多參數的解決方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

php方法太多參數的解決辦法:1、把參數對象化;2、定義一個BookModel類;3、對create方法進行改造,要求它的參數為BookModel類即可。

本文操作環境:Windows7系統、PHP7.1、Dell G3。

PHP方法參數過多優化方案

我們在編寫PHP方法時,通常有若干個參數,就像下面的代碼:

Class Book
{
    public function create($name, $cateId, $author)
    {
        $params = [
            'name' => $name,
            'cateId' => $cateId,
            'author' => $author
        ];
    }
}

沒有任何問題。

但是,隨著業務的發展,參數可能會不斷增加。就像上面的例子,創建一本書剛開始只有name/cateId/author三個參數,慢慢可能就變成了下面這樣:

Class Book
{
    public function create($name, $cateId, $author, $year, $price, $publish, $country, $language)
    {
        $params = [
            'name' => $name,
            'cateId' => $cateId,
            'author' => $author,
            'year' => $year,
            'price' => $price,
            'publish' => $publish,
            'country' => $country,
            'language' => $language,
        ];
    }
}

It works well!但是看起來總覺得不太優雅,當你調用這個方法的時候,鬼才知道參數的順序是怎么樣的!

如何優化呢?我們可以嘗試把參數對象化。請看下面的代碼:

class BookModel
{
    protected $name;
    protected $cateId;
    protected $author;
    protected $year;
    protected $price;
    protected $publish;
    protected $country;
    protected $language;
    public function getName()
    {
        return $this->name;
    }
    public function setName($name)
    {
        $this->name = $name;
    }
    public function getCateId()
    {
        return $this->cateId;
    }
    public function setCateId($cateId)
    {
        $this->cateId = $cateId;
    }
    public function getAuthor()
    {
        return $this->author;
    }
    public function setAuthor($author)
    {
        $this->author = $author;
    }
    public function getYear()
    {
        return $this->year;
    }
    public function setYear($year)
    {
        $this->year = $year;
    }
    public function getPrice()
    {
        return $this->price;
    }
    public function setPrice($price)
    {
        $this->price = $price;
    }
    public function getPublish()
    {
        return $this->publish;
    }
    public function setPublish($publish)
    {
        $this->publish = $publish;
    }
    public function getCountry()
    {
        return $this->country;
    }
    public function getLanguage()
    {
        return $this->language;
    }
    public function setLanguage($language)
    {
        $this->language = $language;
    }
}

上面定義了一個BookModel類,包含了一些屬性。然后我們對create方法進行改造,要求它的參數為BookModel類。由于BookModel的數據結構是明確的,使用起來非常方便。create方法調整后:

Class Book
{
    public function create(BookModel $bookModel)
    {
        $params = [
            'name' => $bookModel->getName(),
            'cateId' => $bookModel->getCateId(),
            'author' => $bookModel->getAuthor(),
            'year' => $bookModel->getYear(),
            'price' => $bookModel->getPrice(),
            'publish' => $bookModel->getPublish(),
            'country' => $bookModel->getCountry(),
            'language' => $bookModel->getLanguage(),
        ];
    }
}

看,面向對象編程的優勢在這里凸顯出來了!

感謝你能夠認真閱讀完這篇文章,希望小編分享的“php方法太多參數的解決方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

昆山市| 金堂县| 彭水| 汪清县| 江达县| 桂东县| 丹寨县| 嵊泗县| 宜川县| 兴海县| 抚州市| 武强县| 福州市| 娄底市| 衡水市| 泰和县| 深水埗区| 玉山县| 高密市| 凉城县| 武穴市| 临沧市| 修文县| 封开县| 会泽县| 万盛区| 石渠县| 淮安市| 澜沧| 华池县| 商洛市| 西平县| 铜梁县| 四平市| 西乌珠穆沁旗| 阿城市| 寿阳县| 昔阳县| 平南县| 建瓯市| 西宁市|