PHP 메소드의 너무 많은 매개변수에 대한 해결 방법: 1. 매개변수를 객체화합니다. 2. BookModel 클래스를 정의합니다. 3. create 메소드를 수정하고 해당 매개변수가 BookModel 클래스가 되도록 요구합니다.
이 문서의 운영 환경: Windows7 시스템, PHP7.1, Dell G3.
php 메소드에 매개변수가 너무 많으면 어떻게 해야 하나요?
과도한 PHP 메소드 매개변수에 대한 최적화 솔루션
PHP 메소드를 작성할 때 일반적으로 다음 코드와 같이 여러 매개변수가 있습니다.
Class Book { public function create($name, $cateId, $author) { $params = [ 'name' => $name, 'cateId' => $cateId, 'author' => $author ]; } }
문제 없습니다.
그러나 비즈니스가 발전함에 따라 매개변수가 계속 증가할 수 있습니다. 위의 예와 마찬가지로 책을 만들 때 이름/cateId/저자의 세 가지 매개변수만 있습니다. 시간이 지나면 다음과 같이 될 수 있습니다.
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, ]; } }
잘 작동합니다! 하지만 이 메소드를 호출하면 항상 우아하지 않은 것 같습니다. 매개변수의 순서는 악마만이 알 수 있습니다.
최적화하는 방법은 무엇입니까? 매개변수를 객관화하려고 노력할 수 있습니다. 아래 코드를 살펴보세요.
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의 데이터 구조가 명확하므로 사용이 매우 편리합니다. 생성 방법을 조정한 후:
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 비디오 튜토리얼"
위 내용은 PHP 메소드에 매개변수가 너무 많으면 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!