ChrisB: Funktionen hijacken und verändern

Beitrag lesen

Hi,

Die Variable die ich haben will ist eigentlich garnicht groß deklariert, sie wird in der Funktion nur kurz erzeugt, an eine andere Funktion übergeben und dann nicht weiterverwendet.Ist sie dann nur innerhalb der Funktion gültig?

Als Funktions-lokale Variable: Ja.
(Das sollte aber auch der prozedurale Programmierer eigentlich schon wissen.)

Und könnte mal sie nachträglich public, und damit für mich nutzbar, machen? Sprich wenn sie im Orginal nicht ausserhalb der Funktion deklariert wurde, der Funktion (über Deine extends Klasse) einfach ein "public intZahl;" voranstellen?

Nicht, ohne (auch) die Methode anzupassen - so lange du in der nämlich die Syntax zum Zugriff auf die Eigenschaft nicht anpasst, wird sie weiterhin ihre lokale Variable verwenden.

(„Auch“ deswegen in Klammern, weil die explizite Deklaration der Eigenschaft als public in der Klasse nicht unbedingt erforderlich ist. Ohne diese wird eine Member-Variable bei der ersten schreibenden Verwendung automatisch implizit mit der Sichtbarkeit public angelegt. Besonders sauberer „Stil“ ist das natürlich nicht, aber für den Sonderfall wäre es ggf. akzeptabel.)

Nebenwirkungen *könnte* das natürlich auch haben - allerdings wären die eher in dem Fall zu erwarten, wo es das public member bereits gibt (von anderen Methoden genutzt), und man dann in der in Frage stehenden Methode von der lokalen Variablen auf die Nutzung dieses Members umsteigt. Dann beeinflusst man nämlich plötzlich in dieser Werte, die auch an anderen Stellen genutzt werden.

Dich erst mal selber etwas mehr mit den Grundlagen von OOP allgemein und OOP in PHP 5 im speziellen zu beschäftigen, wäre wohl angebracht, wenn du jetzt vor dieser Aufgabe stehst.

MfG ChrisB

--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?