Widzę, że w PHP 5.3.2 jest klasa ArrayObject. Czy można zadeklarować nowy obiekt o nazwie Array?
Który rozszerza ArrayObject. Ale nie jestem pewien, czy „Array” jest zarezerwowanym słowem kluczowym, czy powinienem użyć własnego prefiksu, np. XArray(), MyArray itp.
Chciałbym mieć
class Array extends ArrayObject {
...my own code
}
3 odpowiedzi
Wszystko, co musisz zrobić, to spróbować uruchomić:
<?php class Array {}
I zobaczysz:
Parse error: syntax error, unexpected 'Array'
Więc odpowiedź brzmi: nie, nie możesz. Musisz użyć innej nazwy.
Jeśli to działa teraz, może się zdarzyć, że w przyszłości utworzy klasę Array
. Najlepiej jest po prostu trzymać się z daleka od nazw, które są tak oczywiste, że język może je zdefiniować.
Edit: Jak zauważył Mateusz, to nie działa. Widząc jego odpowiedź, zdałem sobie sprawę, dlaczego to nie działa: array
jest słowem kluczowym w php (pozwala na utworzenie literału tablicy), a słowa kluczowe nie są rozróżniane wielkością liter w php.
Nie jestem pewien, czy „Tablica” jest zarezerwowanym słowem kluczowym
Łatwo to sprawdzić. lista zarezerwowanych słów kluczowych PHP ma „array()” na początku i na środku .
Ta strona zawiera również następujące wskazówki:
Nie możesz użyć żadnego z poniższych słów jako stałych, nazw klas, nazw funkcji lub metod. Używanie ich jako nazw zmiennych jest ogólnie w porządku, ale może prowadzić do zamieszania.
Więc nie, nie możesz. Musisz zmienić nazwę swojej klasy na inną, a twoje imię musi być rozróżniane nie tylko za pomocą wielkości liter, ponieważ w nazwach klas PHP nie jest rozróżniana wielkość liter.
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.