Also habe ich heute ein Formular erstellt und zufällig einer Variablen den gleichen Namen gegeben wie ein später verwendeter Name in einer foreach-Schleife. Zu meiner Überraschung hat die Erklärung der foreach-Schleife die vorherige Deklaration der Variablen überschrieben.
Das klingt für mich ziemlich merkwürdig, da ich erwartet hatte, dass der Geltungsbereich von as $value => $a
den Geltungsbereich der beiden Variablen auf die foreach
-Schleife beschränkt.
Das passiert:
%Vor%Das habe ich erwartet:
%Vor% Dasselbe passiert, wenn ich $a
als Schlüssel von foreach
loop verwende, erschreckender war dieses Juwel:
hat das $b
-Array an Ort und Stelle überschrieben, aber immer noch über seine Mitglieder geloopt.
Alles in allem scheint es ein wenig skurril. Meine Frage, fragt wo genau würde ich die Dokumentation finden, die angibt, dass dieses Verhalten erwartet wird?
Der Umfang in PHP ist auf globaler oder Funktionsebene, es gibt keinen Blockbereich, siehe Ссылка