2016-08-09 50 views
-3

legte ich, was der Unterschied zwischen $ x, $ y, $ z wobei Variablen deklariert, und die Funktion ($ x, $ y, $ z)

und

$ _SESSION [ 'x'] , $ _SESSION ['y'], $ _ SESSION ['z'] deklariert
und function() mit $ _SESSION ['x'], $ _SESSION ['y'], $ _SESSION ['z'];

Mit freundlichen Grüßen, danke.

+0

Sie haben geschrieben, dass Sie sich fragen, was der Unterschied ist. Warum denkst du, dass sie gleich sind? – BeetleJuice

+0

weil beide Funktionen mit den gleichen Variablen arbeiten, aber in der zweiten muss ich mich nicht um die Reihenfolge der Variablen kümmern. – Biobibdata

Antwort

0

Im ersten Szenario werden die Werte von der Funktion bereitgestellt, die diese Funktion aufruft. In der zweiten sucht die Funktion aktiv nach den Variablen aus der Sitzung. Die Unterscheidung zwischen den beiden ergibt sich daraus, wo die Verantwortung für das Finden der Werte liegen sollte.

Die Sitzung ist eine Abhängigkeit. Wenn also die Funktion von der Sitzung abhängt, hat die Funktion eine interne Abhängigkeit. Dies begrenzt die Vielseitigkeit der Funktion.

Wenn die Funktion die Werte als Argumente akzeptiert, kann jeder PHP-Code überall den Code in dieser Funktion verwenden. Wenn die Funktion die Werte aus dem Sitzungsstatus abruft, kann nur eine aktive Webanwendung diese Funktion verwenden. Plus, dass Web-Anwendung muss sich daran erinnern, die Werte, wo die Funktion sie finden können (da es nicht werben, dass es diese Werte benötigt, wie Funktion Argumente tun).

In den meisten Fällen wird der erste Ansatz bevorzugt. Wenn die Funktion eine Operation ausführt (und optional ein Ergebnis zurückgibt), dann lassen Sie die Funktion nur das tun. Lass es "eine Sache machen". Die Verantwortung, die Funktion mit dem zu versehen, was sie benötigt, gehört zu dem Code, der die Funktion aufruft. Die Funktion selbst sollte als voll gekapselte Entität einfach anzeigen, was sie benötigt und was sie zurückgeben soll.