Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nazwa klasy przy tworzeniu obiektu
albrzykowski
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 3
Dołączył: 5.02.2007

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


Witam, problem jest bardzo prosty ale nie znalazłem rozwiązania:

Chodzi mi o "wrażliwośc" na doże i małe litery w nazwie klasy przy tworzeniu obiektu:

  1. class A{
  2. }
  3. $oA = new A();


i druga wersja:

  1. class A{
  2. }
  3. $oA = new a();


rozwiązanie sprawdzałem(PHP5/Win PHP5/Debian) i i działa poprawnie w obydwu przypadkach, niemniej by może - i właśnie tego nie wiem - nazewnictwo klasy jest zależne od dyrektyw PHP na różnych serwerach.

Będę wdzięczny za pomoc!!
LA
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
-=Peter=-
post
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


PHP nie jest wrażliwe na wielkość liter w nazwach klas, ale... (zawsze jest jakieś ale (IMG:style_emoticons/default/tongue.gif) )

Problem pojawia się przy wykorzystaniu autoloadera klas. Posłużę się przykładem:

  1. //plik A.php
  2. class A{}
  3.  
  4. //plik index.php
  5. function __autoload($class){
  6. require_once $class.'.php';
  7. }
  8.  
  9. $a = new a();
  10. //powyższy kod zadziała na windowsie, gdyż wielkość liter w nazwie plików nie odgrywa roli
  11. //ale na linuksie już nie będzie działał
  12.  
  13. //plik index2.php
  14. require_once 'A.php';
  15. $a = new a();//zadziała i na windowsie i ja linuksie
  16.  
Go to the top of the page
+Quote Post
smentek
post
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 11
Dołączył: 7.04.2003

Ostrzeżenie: (10%)
X----


Dlatego dobrą praktyką jest zastosowanie strtolower() na łańcuchach reprezentujących katalogi w path do pliku z klasą. Kwestia dużych liter w nazwach klas jest jedynie konwencją. Pliki zdecydowanie przy użyciu wyłącznie małych liter.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@smentek - Nie wiem, skąd czerpiesz informacje, ale są one odrobinę nie na czasie. To, że Windows jest durnym systemem i ignoruje wielkość znaków, to nie znaczy, że my mamy się dostosowywać do tego, skoro produkcyjne serwery w większości pracują pod kontrolą unixowych systemów. Większość autoloaderów bazuje na nazwie pliku z klasą, więc jeśli klasa ma nazwę MojaKlasa, to plik powinien się nazywać MojaKlasa.class.php, MojaKlasa.php lub class.MojaKlasa.php i to można uznać za standard.
Powoływanie obiektu klasy A jako new a() jest błędem, mimo, że obiekt powstanie.

Przenoszę na PHP
Go to the top of the page
+Quote Post

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: 16.09.2025 - 11:15