Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] przesztrzeń nazw i use
-gosss-
post
Post #1





Goście







Ktoś mi wyjaśni dlaczego poniższy kod nie działa?

  1. use App\Controller\Test;
  2. new Test;
  3.  
  4. use App\Model\Test;
  5. new Test;


A jak napiszę
  1. use App\Controller\Test;
  2. new Test;
  3.  
  4. new App\Model\Test;


To jest już ok...

Wyskakuje komuniakt

Cytat
Fatal error: Cannot use App\Model\Test as Test because the name is already in use in


I rozumiem go, ale przecież odwołane jest zupełnie inne, tam jest do kontrolera a później do modelu... to jak w końcu korzystać z tych przestrzeni?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


1. Pierwszy przykład nie działa Ci, ponieważ pod nazwą "Test" mogą kryć się dwie nazwy, którą z nich powinno się użyć? Niby można by powiedzieć, że tą, która została zadeklarowana jako ostatnia, ale taka niejednoznaczność byłaby bardzo irytująca i powodowałaby wiele błędów.
2. Co do drugiej kwestii z postu powyżej, to nie rozumiem Twojego zdziwienia. Przecież utworzyłeś klasę App\Core\Start oraz App\Cos\Art, która dziedziczy po Start (nieistniejąca klasa). Skąd PHP miałoby wiedzieć, że chodzi o Start z przestrzeni App\Core?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 13:48