Jesteś w stanie utworzyć instancję tablicy w PHP za pomocą słowa kluczowego new
, jednak jest ona nieco bardziej masywna niż tablice utworzone przy użyciu funkcji array()
i nie używa tego samego połączenia.
new ArrayObject();
będzie instancję tablicy jako obiektu. Co ważniejsze, jest to klasa rozszerzalna, jeśli chcesz używać składni tablicowej z obiektem w PHP zorientowanym obiektowo. W większości przypadków wskazane jest użycie funkcji array()
w celu uzyskania szybkości i prostoty.
Edycja: domyślam się, że nigdy nie odpowiedziałem na to pytanie.
$var = array();
$var[] = 'car';
stworzy nową pustą tablicę, a następnie doda "samochód" do tablicy. To dobra forma do inicjowania dowolnych tablic. Byłoby lepiej, aby napisać te dwa wiersze jako jedna: $var = array('car');
$var[] = 'car';
utworzy nową tablicę z „samochód” w nim, jeśli $var
nie jest tablicą lub jest pusta.Jeśli zdarzyło się, że $var
zostało już zadeklarowane jako tablica, może się zdarzyć, że przypadkowo zachowano kilka starszych wartości (dlatego warto inicjować tablice).
$var = new ArrayObject();
$var[] = 'car';
jest sposobem OOP do zadeklarowania tablicy. Jest to nieco więcej zasobów intensywne, tak trzymać array()
chyba że masz dobry powód do korzystania ArrayObject
UWAGA:
Zwiększanie niezainicjowany zmienna numeryczna jest znacznie wolniejszy niż zwiększający się zainicjowanego zmienną liczbową ($i++
jest wolniejszy niż $i = 0; $i++
). Nie dotyczy to tablic w php: ($var[] = 'car'
jest mniej więcej taki sam jak $var = array(); $var[] = 'car'
)
Ma sens, dzięki! – mattypie
+1. Po prostu zwróćmy uwagę, że * "W PHP, nowy jest używany tylko do tworzenia obiektów." * ... Również w JavaScript, po prostu "Array" jest obiektem w JavaScript, podczas gdy w PHP jest to uporządkowana mapa (coś JavaScript nie ma na słowo, ponieważ uporządkowana mapa w JS jest obiektem). – netcoder
Masz absolutną rację. Tablice asocjacyjne w JavaScript są obiektami. – stillstanding