Przejdź do treści głównej
INF.03Pytanie #1547 z 1558php-skladnia-i-struktury

W klasie PHP użyto dwóch cech (traits), które posiadają metodę o identycznej nazwie. Za pomocą której instrukcji rozwiązano konflikt nazw metod, aby wywołać implementację pochodzącą z cechy Alfa?

php
<?php
trait Alfa { function pokaz() { echo "A"; } }
trait Beta { function pokaz() { echo "B"; } }
class MojaKlasa {
    use Alfa, Beta {
        // W tym miejscu wstawiono instrukcje rozwiazania konfliktu
    }
}
?>
Opcje odpowiedzi:
A
Alfa::pokoz insteadof Beta;
B
Alfa::pokaz insteadof Beta;
Prawidłowa
C
pokaz::Alfa over Beta;
D
use Alfa::pokaz;
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: B (Alfa::pokaz insteadof Beta;)

Ponieważ słowo kluczowe insteadof służy do jawnego rozwiązywania konfliktów nazw metod w strukturach cech (traits) poprzez wskazanie, która metoda ma zastąpić metodę o tej samej nazwie z innej cechy.

Opcja A zawiera błąd ortograficzny w nazwie metody (pokoz). Opcja C wykorzystuje fikcyjne słowo kluczowe over, które nie występuje w składni obiektowej języka PHP. Opcja D opisuje niepełną strukturę importu, która nie rozwiązuje istniejącego konfliktu nazw.

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: Opcja Alfa::pokoz insteadof Beta; nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu.
  • C: Opcja pokaz::Alfa over Beta; nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu.
  • D: Opcja use Alfa::pokaz; 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.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF03
Reklama

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.