2010-05-04 8 views
11

Wenn ich die Doktrin verwende, stolpere ich über diese 2 Wörter: Accessor und Mutator.Accessor und Mutator?

werden diese nur in der Lehre verwendet oder sind sie spezifisch für PHP?

und was bedeuten sie?

dank

Antwort

22

Sie sind nur Phantasie Begriffe für Getter und Setter.

+4

Und um es klar zu stellen, sind sie allgemeine Begriffe, die in objektorientierter Programmierung verwendet werden, unabhängig von der Sprache oder dem Framework. – nickf

+1

Also warum nennen sie sie Accessoren und Mutatoren statt Getter und Setter? Sie sind keine magischen Methoden, das heißt, wenn ich setProp() eintippe, aber keine Methode dafür definiert habe, wird sie nicht automatisch erstellt? –

+1

@fayer Accessor und Mutator sind allgemeinere Begriffe, die in der Informatik verwendet werden. Getter und Setter sind lässiger, denke ich ... vielleicht ein Slang. Solange ich weiß, wird es nicht magisch die Variablen für Sie in PHP erstellen ... müssen die Spezifikationen suchen ... ziemlich sicher, wird es nicht. – m0s

2

Wenn ich Sie richtig verstehe, sind diese 2 spezifisch für jede objektorientierte Programmiersprache. Der Punkt ist, dass Accessor eine Methode oder eine Funktion ist, die Zugriff auf private Felder in Ihrer Klasse bietet und Mutator-Methode ermöglicht, die privaten Felder zu ändern. Ich kann weiter darüber schreiben, aber ich schlage vor, Sie googeln diese und Sie erhalten viele Informationen darüber. Alles über Kapselung < - schlagen Sie vor, diesen Begriff auch nachzuschlagen.

+0

Ich mag es, sie als normale Funktionen zu betrachten, die nur einem allgemein bekannten Zweck dienen ... nichts weiter. – m0s

0

Sie sind nicht nur unterschiedliche Begriffe für Getter und Setter, zumindest nicht in Laravel.

Um die Dokumentation zu zitieren: "Accessoren und Mutatoren können Sie Eloquent Attribute beim Abrufen von ihnen aus einem Modell oder die Einstellung ihres Wertes zu formatieren."

https://laravel.com/docs/master/eloquent-mutators

So könnte man sagen, dass Getter und Setter eine Teilmenge von Zugriffs- und Mutatoren sind, die die Daten um den Faktor Null ändern.

Anders ausgedrückt, wenn ich ein rohe Feld "Kosten" von einem Tisch bekommen wollte, würde ich einen Getter verwenden. Wenn ich dieses Feld in Pfund und Pence ausgedrückt und formatiert haben wollte, dann könnte ich einen Accessor verwenden.

Es gibt andere Möglichkeiten, ich könnte es tun, aber das ist eine Option.

+0

Könnten Sie bitte erklären "um einen Faktor von Null zu ändern"? Vielen Dank! –

+0

Sicher. Accessoren und Mutatoren ändern einen Wert, bevor sie den neuen Wert speichern oder zurückgeben. Setter und bekomme es nicht den Wert ändern. Als ich "um den Faktor Null" sagte, meinte ich nur "keine Veränderung". Sie haben dem Wert gerade nichts hinzugefügt. – Puzbie

Verwandte Themen