Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przestrzeń nazw
Forum PHP.pl > Forum > Przedszkole
tomxx
Mam problem dotyczący przestrzeni nazw w PHP. Wszedłem do manuala i uruchomiłem Przykład #1. W efekcie wyświetlił się błąd:

Fatal error: Namespace declaration statement has to be the very first statement in the script in ... on line 2

Ktoś może wie, czym jest to spowodowane? Bo deklaracja przestrzeni jest pierwszą instrukcją w skrypcie.
Kod dostępny jest w linku do manuala (podanym przeze mnie wyżej), więc tym bardziej powinien działać...
pedro84
Pokaż ten kod.
gorden
nie ma żadnego HTMLa czy spacji przed rozpoczęciem kodu php?
tomxx
Nie, nie ma nic przed deklaracją (oprócz <?php).

  1. <?php
  2. namespace MyProject;
  3.  
  4. const CONNECT_OK = 1;
  5. class Connection { /* ... */ }
  6. function connect() { /* ... */ }
  7.  
  8. ?>


Kod mam z manuala.
pedro84
Białego znaku nie ma na pewno? A może BOM? Spróbuj zapisać plik z kodowaniem UTF-8 bez BOM.
tomxx
Nie ma białego znaku (plik mam w Notatniku). Zmieniam kodowanie i nic nie pomaga.

A, ok, to dlatego nie działało biggrin.gif

pl.wikipedia.org/wiki/BOM:
"Przykładowo Notatnik w niektórych wersjach systemu Windows stara się wykryć kodowanie wielobajtowe. Jednak przy zapisie takiego pliku dodaje znacznik wykrytego kodowania. To z kolei może powodować, że niektóre skrypty (np. PHP) zostaną nieprawidłowo zinterpretowane i przestaną działać poprawnie."

Ale zapisałem w innym edytorze i działa. Dzięki za pomoc smile.gif
pedro84
Jak zmieniasz te kodowanie? W Notatniku? Pobierz sobie Notepad++, ja nie rozumiem jak można cokolwiek w systemowym notatniku robić.

To na bank jest albo biały znak (przed <?php albo po ?>) lub BOM. Ewentualnie jeszcze auto_prepend_file.

@up - ja Ci odpowiedź piszę a Ty się upierasz dalej biggrin.gif
tomxx
Okazało się, że to BOM, cytat z Wikipedii: "Przykładowo Notatnik w niektórych wersjach systemu Windows stara się wykryć kodowanie wielobajtowe. Jednak przy zapisie takiego pliku dodaje znacznik wykrytego kodowania. To z kolei może powodować, że niektóre skrypty (np. PHP) zostaną nieprawidłowo zinterpretowane i przestaną działać poprawnie."

Zrobiłem to w innym edytorze i zadziałało.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.