Erweiterung auf Jouby Erklärung:
In PHP, im Gegensatz zu vielen anderen Sprachen, Variablen sind standardmäßig lokale Variablen. Dies vereinfacht einige Aspekte beim Schreiben sicherer Funktionen (mit weniger versehentlichen Nebenwirkungen), erfordert jedoch einen zusätzlichen Schritt, wenn Sie wirklich globale Variablen verwenden möchten.
In einer Funktionsdefinition sind Parametervariablen wirklich spezialisierte lokale Variablen. Der magische Teil einer Parametervariablen ist, dass sie automatisch zugewiesen wird, wenn Sie die Funktion aufrufen.
Das Schlüsselwort global
in PHP ordnet den Variablennamen der globalen Variablen zu und ersetzt damit effektiv die lokale Variable. Sie müssen nur global
verwenden, wenn Sie globale Daten verwenden möchten, was im Allgemeinen keine gute Idee ist.
In Ihrem Beispiel haben Sie genau das getan. Sie haben Ihren lokalen Parameter mit einer nicht vorhandenen globalen Variable durchbrochen. Entfernen Sie einfach diese Anweisung, und die Dinge sollten funktionieren.
Ich bekomme es nicht ... warum hast du '$ input = 5;' wenn du 'dostuff (5)' sowieso benutzt? –
Ich denke, keine Notwendigkeit von globalen $ -Eingabe; –
Weil Sie die globale Variable '$ input' mit' global $ input; 'verwenden und das ist nicht gleich 5. – Rizier123