PHP 7.4 führt Typhinweise ein, wodurch das PHP-Programmiererlebnis näher an Sprachen wie Java oder C# herankommt, was großartig ist! Allerdings habe ich festgestellt, dass ich Methoden nicht wie in anderen typisierten Sprachprojekten überladen kann.
Die auf Stack Overflow bereitgestellten Lösungen waren nicht zufriedenstellend, daher habe ich darüber nachgedacht, wie man Methoden am effizientesten und prägnantesten überladen kann, und eine Unterstützungsbibliothek dafür erstellt. Ich wollte es mit Ihnen teilen, weil es möglicherweise die beste Lösung ist, die Sie finden können. Sie können es auf GitHub herunterladen und mehr erfahren.
Ich denke, der kurze Codeausschnitt unten reicht aus, um zu verstehen, wie es funktioniert.
<code class="language-php">$userRepository = new UserRepository(); $userRepository->add('Micheal', 'Jordan', 23); $userRepository->add('Micheal Jordan', 23); $userRepository->add(new User("Micheal", "Jordan", 23)); $userRepository->add(new UserDto("Micheal", "Jordan", 23)); $userRepository->add(['fist_name' => 'Micheal', 'last_name' => 'Jordan', 'number' => 23]);</code>
<code class="language-php">public function add(mixed ...$args): void { $addMethodOverloader = MethodOverloader::create($this) ->register($this->addByFirstNameLastNameAndNumber(...), 'string', 'string', 'int') ->register($this->adddByUser(...), User::class) ->register($this->addByUserDto(...), UserDto::class) ->register($this->addByArray(...), 'array') ->register($this->addNyNameAndNumber(...), 'string', 'int') ->onFailure(function() { throw new MyCustomException(); }); $addMethodOverloader->invoke($args); }</code>
Dies ist mein erster Beitrag. Bitte sagen Sie mir, ob er in Ordnung ist. Wenn Sie Fragen haben, können Sie diese gerne stellen.
Das obige ist der detaillierte Inhalt vonÜberladen von Methoden mit Typen in PHP und höher. So wie es sein sollte.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!