Was tun, wenn die PHP-Methode zu viele Parameter hat?

藏色散人
Freigeben: 2023-03-14 06:46:02
Original
3217 Leute haben es durchsucht

Lösungen für zu viele Parameter in der PHP-Methode: 1. Objektivieren Sie die Parameter. 2. Definieren Sie eine BookModel-Klasse. 3. Ändern Sie die Erstellungsmethode und verlangen Sie, dass ihre Parameter BookModel-Klassen sind.

Was tun, wenn die PHP-Methode zu viele Parameter hat?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP7.1, Dell G3.

Was soll ich tun, wenn die PHP-Methode zu viele Parameter hat?

Optimierungslösung für übermäßige PHP-Methodenparameter

Wenn wir PHP-Methoden schreiben, haben wir normalerweise mehrere Parameter, genau wie der folgende Code:

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

Es gibt kein Problem.

Im Zuge der Geschäftsentwicklung können sich die Parameter jedoch weiter erhöhen. Genau wie im obigen Beispiel gibt es beim Erstellen eines Buchs nur drei Parameter: Name/Kategorie-ID/Autor. Mit der Zeit kann es so aussehen:

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,
        ];
    }
}
Nach dem Login kopieren

Es funktioniert gut! Aber es wirkt immer unelegant, wenn man diese Methode aufruft, weiß nur der Teufel, wie die Reihenfolge der Parameter ist!

Wie optimiert man? Wir können versuchen, die Parameter zu objektivieren. Bitte schauen Sie sich den Code unten an:

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;
    }
}
Nach dem Login kopieren

Das Obige definiert eine BookModel-Klasse, die einige Eigenschaften enthält. Dann ändern wir die Methode „create“ und verlangen, dass ihr Parameter die Klasse „BookModel“ ist. Da die Datenstruktur von BookModel klar ist, ist die Verwendung sehr bequem. Nach dem Anpassen der Erstellungsmethode:

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(),
        ];
    }
}
Nach dem Login kopieren

Sehen Sie, hier werden die Vorteile der objektorientierten Programmierung hervorgehoben!

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas tun, wenn die PHP-Methode zu viele Parameter hat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage