hi Whouzuo,
In Kombination mit Dereferencing, können wir Method-Chaining benutzten. Stell dir eine Liste von Produkten vor, wir wollen den Gesamtpreis ermitteln:
gesamt = produkte.map( getPreis ).reduce( sum );
In prozeduraler Schreibweise sähe das so aus:
gesamt = reduce( map( produkte, getPreis ), sum );
Method-Chaining geht aber auch in PHP. Und klar, es muss ersterer Code umgesetzt werden.
$produkte->get("Preis")->reduce($sum);
Wenn das so überhaupt Sinn macht. Eine Produktklasse hätte vielleicht auch schlicht eine "getTotal()"-Methode.
Du hast das nicht ganz verstanden. Du schreibst keine "Produkte"-Klasse, du schreibst eine "Produkt"-Klasse, die genau ein Produkt beschreibt. Dann machst du eine Liste, in die du mehrere dieser Produkte (Produkt-Objekte) reinschmeißt. Irgendwann willst du dann den Preis bestimmen und das geht so wie 1UnitedPower beschrieben. Eine "Produkte"-Klasse wie in deinem Beispiel das $produkte braucht es dafür gar nicht (das wäre sogar eher schädlich).
https://forum.selfhtml.org/?t=217720&m=1496513
Ich erkenne auch hier nicht wirklich den Nutzen, den es ja haben muss, wenn FB in Hack dafür extra "Collections" "erfindet". Ich sage nicht, dass es keinen gibt. Es muss ja ne Menge Arbeit sparen, sonst würden sie es nicht machen.
Ganz einfach: damit nicht jeder einzelne der tausenden PHP Programmierer so wie du eben die Collections sozusagen für sich selbst als Klassen (und dann noch schlecht wiederverwendbar) nachbauen muss. =)
https://forum.selfhtml.org/?t=217720&m=1496531
mfg
tami