Przeanalizuj poniższy fragment kodu PHP zawierający dwie pętle foreach. Jaki rezultat zostanie wypisany przez funkcję print_r?
Przeanalizuj poniższy fragment kodu PHP zawierający dwie pętle foreach. Jaki rezultat zostanie wypisany przez funkcję print_r?
<?php
$arr = [1, 2, 3];
foreach ($arr as &$val) {
// pętla pozostawia referencję
}
foreach ($arr as $val) {
// pętla nadpisuje referencję
}
print_r($arr);
?>Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: B (Array ( [0] => 1 [1] => 2 [2] => 2 ))
Ponieważ po zakończeniu pierwszej pętli zmienna $val pozostaje aktywną referencją do ostatniego elementu tablicy, czyli do $arr[2]. W drugiej pętli, w każdej iteracji, kolejny element tablicy jest kopiowany do zmiennej $val. W pierwszej iteracji drugiej pętli wartość $arr[0] (czyli 1) trafia do $val, a ponieważ $val wskazuje na $arr[2], tablica zmienia się na [1, 2, 1]. W drugiej iteracji wartość $arr[1] (czyli 2) trafia do $val (modyfikując $arr[2]), przez co tablica zmienia się na [1, 2, 2]. W trzeciej iteracji do $val kopiowana jest aktualna wartość $arr[2] (czyli 2), więc ostateczny stan tablicy to [1, 2, 2].
Opcja A jest niepoprawna, ponieważ zakłada brak wpływu pozostawionej referencji na strukturę danych. Opcja C jest niepoprawna, ponieważ odzwierciedla stan tablicy po pierwszej iteracji drugiej pętli. Opcja D jest niepoprawna, ponieważ zakłada nieprawidłowe nadpisanie wszystkich indeksów tablicy.
Dlaczego pozostałe opcje są nieprawidłowe?
- A: Opcja
Array ( [0] => 1 [1] => 2 [2] => 3 )nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu. - C: Opcja
Array ( [0] => 1 [1] => 2 [2] => 1 )nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu. - D: Opcja
Array ( [0] => 2 [1] => 2 [2] => 2 )nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu.
Chcesz poćwiczyć całą kwalifikację INF.03?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Indeks w bazie danych (INDEX)Specjalna pomocnicza struktura danych (najczęściej B-drzewo) przyspieszająca wyszukiwanie i sortowanie wierszy w tabeli kosztem wolniejszego zapisu.
- Metody tablicowe w JS (push, pop, map, filter, forEach, splice)Funkcje wbudowane w prototyp tablic służące do mutowania zawartości, transformacji, filtrowania i iteracji po elementach.
- Głębia kolorów i rozdzielczość obrazu (DPI, PPI, True Color)Parametry określające liczbę bitów przeznaczonych na opis koloru pojedynczego piksela oraz gęstość punktów na cal (DPI/PPI).
Podobne pytania z działu „Php skladnia i struktury”
Ten sam obszar materiału z kwalifikacji INF.03. W całej bazie znajdziesz 165 pytań z tego działu.
- #39
Fragment kodu prezentuje składnię języka
- #42
Który język skryptowy ogólnego przeznaczenia należy wykorzystać do tworzenia aplikacji WWW, zagnieżdżanych w języku HTML i uruchamianych po stronie serwera?
- #69
Która z wymienionych funkcji sortowania wykorzystywana w języku PHP sortuje tablicę asocjacyjną według indeksów
- #73
Instrukcja języka PHP tworząca obiekt pkt dla zdefiniowanej w ramce klasy ma postać
- #74
Wskaż wynik wykonania skryptu napisanego w języku PHP