Heim > Backend-Entwicklung > PHP-Tutorial > Überladen von Methoden mit Typen in PHP und höher. So wie es sein sollte.

Überladen von Methoden mit Typen in PHP und höher. So wie es sein sollte.

Barbara Streisand
Freigeben: 2025-01-10 14:05:41
Original
923 Leute haben es durchsucht

Overloading methods with types in PHP  and above. The way it should be.

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

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage