Eh, w sumie tak sobie przeczytałam, jakie było początkowe pytanie w temacie:
No ale wracając do tematu, co w PHP jest takie złe, na co uważać, żeby nie wyrobić sobie złych nawyków i jak potem np. z przerzuceniem się z PHP na Pythona? Czego warto być świadomym kodząc w PHP, jeśli się ma niewielkie pojęcie o programowaniu w ogóle, w szczególności dobrym stylu itp?
Na co uważać? No na to, żeby nie pisać w PHP :D
Widzisz, słusznie zauważyłeś, że jest pewna niechęć do PHP. Jak widać po tym topiku, niechęć ta powoduje, że ludzie wolą pisać o tym, czego nie lubią w PHP ;)
Wiesz, wiadomo, że i w PHP da się napisać duży projekt, jeśli np. wykorzystasz dobry framework. Jednakże ja osobiście (i myślę, że wielu programistów tak ma) lubię wykorzystywać rozwiązania najprostsze, a nie takie, gdzie da się.
A mój osobisty uraz do PHP wziął się z niespójności i nielogiczności biblioteki standardowej... Dajmy na przykład głupią zamianę stringa w stringu. Wszystkie inne języki mają to zrobione w jednym z dwóch wariantów:
Kopiuj
String.Replace(ref tekst, tekst_do_zamiany, na_co_zamienic);
lub
Kopiuj
tekst = tekst.Replace(tekst_do_zamiany, na_co_zamienic);
A PHP? PHP oczywiście musi być oryginalne, tutaj argumenty nie mogą być w logicznej kolejności:
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
http://pl1.php.net/str_replace
BTW - porównajmy powyższy cytat z dokumentacji PHP do analogicznego wpisu w dokumentacji msdn:
Kopiuj
public string Replace(
string oldValue,
string newValue
)
http://msdn.microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp
Nie wiem czy to tylko moja odosobniona opinia, ale ja z tego króciótkiego wycinka z dokumentacji od razu wiem, jak użyć funkcji Replace. Natomiast w wersji PHP: search - w tym szukaj, czy tego szukaj? subject? Cóż, gdyby to było w logicznej kolejności to bym się może domyśliła, ale tak to muszę przeczytać opis by być pewną:
This function returns a string or an array with all occurrences of search in subject replaced with the given replace value.
Zwraca stringa ALBO tablicę, po prostu bosko... To są właśnie rzeczy, których nie lubię w PHP...
W dalszej części możemy przeczytać, że search właściwie to nazywamy "needle", a subject nazywamy "haystack". Replace nie ma drugiej nazwy. Po co tyle motania? Co złego jest w prostym oldValue i newValue?
No to se ponarzekałam ;) W początkach mej nauki PHP co krok napotykałam na podobne drobne irytacje. Brak spójności w nazwach (str_ i str), zwracanie wartości różnych typów, naprawdę kiepska dokumentacja... No i skończyłam naukę na początkach i mam uraz i nie chcę więcej :|
I na koniec link ;) http://www.phpwtf.org/
vpiotrvpiotrvpiotr