wiem co wykorzystanie operator robi coś jak function($x,$y) use ($z) { ...
Dlaczego PHP wymaga operatora użycia dla zamknięć?
Co ja nie rozumiem, dlaczegoPHP wykorzystuje tę konstrukcję, gdy inne języki nie?
wiem co wykorzystanie operator robi coś jak function($x,$y) use ($z) { ...
Dlaczego PHP wymaga operatora użycia dla zamknięć?
Co ja nie rozumiem, dlaczegoPHP wykorzystuje tę konstrukcję, gdy inne języki nie?
Javascript ma raczej luźne zakresy zmiennych (nie trzeba zadeklarować zmiennych jako globalne). PHP ma mniejszą zmienną zakresu (jeśli zmienna nie jest zdefiniowana w zakresie, w którym jest używana i nie jest wprowadzana z global
, to nie istnieje).
Deklaracja use
mówi PHP, aby udostępnić te zmienne w ramach zamknięcia (i prawdopodobnie powie, że śmieciarz nie będzie ich sprzątał, dopóki zamknięcie nie zostanie oczyszczone).
możliwy duplikat [Dlaczego zmienne PHP zaczynają się od znaku $?] (Http://stackoverflow.com/questions/3073812/why-php-variables-start-with-a-sign-symbol) –
Moje spontaniczne wskazówka byłaby taka, że silnik zakresu PHP nie może efektywnie poradzić sobie z problemem w inny sposób i prostsze rozszerzanie zakresu zmiennych było łatwiejsze do wdrożenia. Znowu, tylko zgadnij. – deceze
[Dokument RFC dotyczący zamknięć i znaków lambda] (https://wiki.php.net/rfc/closures) wydaje się zbliżać do odpowiedzi, ale wydaje się, że obejmuje on więcej niż _what_. – HPierce