2010-10-06 15 views
49

Powiel możliwe:
PHP class instantiation. To use or not to use the parentheses?Tworzenie instancji klasy z nawiasami lub bez nich?

nie znalazłem żadnej oficjalnej dokumentacji na ten temat. Ale afaik nie ma znaczenia, czy klasa jest tworzona z naszym bez nawiasów - tak długo, jak nie ma żadnych parametrów, prawda?

$car = new Car; 

lub

$car = new Car(); 

Ale może ktoś mi powiedzieć, czy istnieje różnica w wydajności? Którędy droga jest "bardziej poprawna"? Czy jest na to oficjalna dokumentacja?

Odpowiedz

83

Jakakolwiek różnica w wydajności będzie absolutnie nieistotna.

Podczas gdy obie strony są w porządku, ja osobiście wolałby korzystania new Car(); ponieważ zazwyczaj metoda jest nazywany tutaj, a funkcja/metoda wywołuje w PHP wymagają (). Ponadto jest bardziej spójny z instancjami, które mają parametry.

Ostatecznie jednak smakuje. Nie ma znaczenia, w jaki sposób wybierzesz, ale gdy wybierzesz jeden, trzymaj się go konsekwentnie!

+2

Dokładnie to, co zamierzałem napisać, +1. – tplaner

+2

+1 i usunięta kopalnia - Zgadzam się w 100%. – lonesomeday

+7

+1 Szczerze mówiąc, nie uważam 'new ClassUsingDefaultConstructor;' i 'new ClassWithConstructorWithParameters ($ foo, $ bar);' użyte w tym samym skrypcie, aby być spójnym * bez względu na *. Ale to tylko ja, myślę. – BoltClock

3

Oba sposoby są poprawne i jestem pewien, że nie ma żadnej różnicy w wydajności.

6

pierwsza instancja nie ma "oficjalnego" odniesienia. W oficjalnym dokumencie php zawsze znajdziesz drugi. Tak, wolę to dla spójności. Ale to wszystko twój wybór

+6

W krótkim przejrzeniu znalazłem dużą liczbę przypadków, w których przykłady dokumentacji używają nie-nawiasów formularza, w tym wiele w "klasach i obiektach" Sekcja. – GZipp

Powiązane problemy