![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
|
Hallo,
da PHP typenlos ist, ist es ja jederzeit möglich einen String zu einem boolean und danach zu einem Integer zu machen. Beim Studium meines neuen Buches bin ich gerade beim Kapitel 2.27, Überladen angekommen. Dort wird ein netter Workaround für obigen Mangel, wenn man es denn so bezeichnen möchte, dargestellt. Hier mal der Code. PHP-Code:
Code:
object(Typed)#1 (1) {
["properties:private"]=>
array(2) {
["name"]=>
string(3) "Ben"
["counter"]=>
int(1)
}
}
Type assignment error
#0 Typed::__set(name, 1) called at [C:\apachefriends\xampp\htdocs\dev\buch\overloading.php:41]
Auf jeden Fall wollte ich Euch das hier nicht vorenthalten, weil ich es irgendwie recht nett finde, für diejenigen, die sowieso mit __get()/__set() arbeiten. Ich persönlich werde es nicht nutzen, weil ich halt lieber den "klassischen" Weg über setter/getter gehe à la PHP-Code:
Grüße, Ben. |
|
|
|
|
|
Nach oben #2 |
|
Neuer Benutzer
Registriert seit: 31.05.2006
Beiträge: 24
|
MoinIch selbst bin ja schon ein Fan der "magischen Methoden". Im Großen und Ganzen arbeite ich aber auch bevorzugt über setter/getter, wobei es auch Situationen gibt, bei denen direkte Wertzuweisung durchaus Sinn ergibt. Mir fällt bloss grad keiner ein....Die Methoden __set und __get haben allerdings das Objekt als solches zu behandeln (und nicht die Eigenschaften durch setter/geter auszuklammern) und dabei trotzdem noch Typ-/Variablenprüfung vorzunehmen. Ursprünglich sollten die Eigenschaften ja auf eben die direkte Art und Weise angesprochen werden. __set und __get erlauben eben noch zusätzlich trotzdem Typ und semantische Integrität zu prüfen!
|
|
|
|
|
|
Nach oben #3 |
|
Gast
Beiträge: n/a
|
__call __get das ist hauptsächlich für dynamische Eigenschaften gedacht.
zB: PHP-Code:
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|