50+ sztuczek i porad PHP dla początkujących i programistów

PHP jest najbardziej użytecznym językiem do tworzenia blogów i stron internetowych, ma wiele funkcji, które można wykorzystać do uzyskania jeszcze bardziej niestandardowych funkcji. Zebraliśmy najbardziej przydatne Sztuczki i porady PHP dla początkujących a nawet programistów. Te sztuczki PHP sprawiają, że kodowanie jest produktywne i bardziej efektywne.

50+ sztuczek i porad PHP dla początkujących

Lista sztuczek i porad dotyczących PHP

1. echo jest szybsze niż drukowanie.

2. Zawijaj swój ciąg w pojedyncze cudzysłowy (') zamiast podwójnych cudzysłowów (”) jest szybsze, ponieważ PHP wyszukuje zmienne wewnątrz „…”, a nie w „…”, użyj tego, gdy nie używasz zmiennych, których potrzebujesz do oceny w swoim strunowy.

3. Użyj sprintf zamiast zmiennych zawartych w podwójnych cudzysłowach, jest to około 10x szybsze.

4. Używaj wielu parametrów echa (lub stosuj) zamiast łączenia ciągów.

5. Użyj obliczeń wstępnych, ustaw maksymalną wartość dla pętli for przed, a nie w pętli. tj.: for ($x=0; $x < count($tablica); $x), to wywołuje funkcję count() za każdym razem, zamiast tego użyj $max=count($tablica) przed rozpoczęciem pętli for.

6. Usuń lub wyzeruj zmienne, aby zwolnić pamięć, zwłaszcza duże tablice.

7. Unikaj magii, takiej jak __get, __set, __autoload.

8. Tam, gdzie to możliwe, używaj require() zamiast require_once().

9. Używaj pełnych ścieżek w zawiera i wymaga mniej czasu poświęcanego na rozwiązywanie ścieżek systemu operacyjnego.

10. require() i include() są identyczne pod każdym względem, z wyjątkiem tego, że wymagają zatrzymania w przypadku braku pliku. Jeśli chodzi o wydajność, różnica jest bardzo mała.

11. Od PHP5 czas rozpoczęcia wykonywania skryptu można znaleźć w $_SERVER['REQUEST_TIME'], użyj tego zamiast time() lub microtime().

12. Wyrażenie regularne PCRE jest szybsze niż EREG, ale zawsze sprawdź, czy możesz zamiast tego użyć szybszych funkcji natywnych, takich jak strncasecmp, strpbrk i stripos.

13. Podczas parsowania z XML w PHP spróbuj xml2array, który wykorzystuje funkcje PHP XML, dla HTML możesz wypróbować dokument DOM PHP lub DOM XML w PHP4.

14. str_replace jest szybszy niż preg_replace, str_replace jest ogólnie najlepszy, jednak strtr jest czasami szybszy przy większych ciągach. Użycie array() wewnątrz str_replace jest zwykle szybsze niż wielokrotne str_replace.

15. Wyrażenia „else if” są szybsze niż instrukcje select aka/switch.

16. Tłumienie błędów za pomocą @ jest bardzo powolne.

17. Aby zmniejszyć wykorzystanie przepustowości, włącz mod_deflate w Apache v2 lub dla Apache v1 spróbuj mod_gzip.

18. Zamknij połączenia z bazą danych, gdy z nimi skończysz.

19. $row['id'] jest 7 razy szybszy niż $row[id], ponieważ jeśli nie podajesz cudzysłowów, musi odgadnąć, który indeks miałeś na myśli, zakładając, że nie miałeś na myśli stałej.

20. Użyj tagi podczas deklarowania PHP, ponieważ wszystkie inne style są przestarzałe, w tym krótkie tagi.

21. Używaj ścisłego kodu, unikaj pomijania błędów, powiadomień i ostrzeżeń, dzięki czemu uzyskasz czystszy kod i mniej kosztów ogólnych. Rozważ włączenie funkcji error_reporting(E_ALL) zawsze.

22. Skrypty PHP są obsługiwane przez serwer httpd Apache 2-10 razy wolniej niż strona statyczna. Staraj się używać stron statycznych zamiast skryptów po stronie serwera.

23. Skrypty PHP (chyba że są buforowane) są kompilowane w locie przy każdym wywołaniu. Zainstaluj produkt buforujący PHP (taki jak memcached lub eAccelerator lub Turck MMCache), aby zazwyczaj zwiększyć wydajność o 25-100% poprzez usunięcie czasów kompilacji. Możesz nawet skonfigurować eAccelerator na cPanel za pomocą EasyApache3.

24. Alternatywną techniką buforowania stron, które nie zmieniają się zbyt często, jest buforowanie danych wyjściowych HTML stron PHP. Wypróbuj Smarty lub Cache Lite.

25. W miarę możliwości używaj isset zamiast strlen. (np. if (strlen($foo) < 5) { echo „Foo jest za krótkie”; } vs. if (!isset($foo{5})) { echo „Foo jest za krótkie”; } ).

26. ++$i jest szybsze niż $ i++, więc używaj pre-inkrementacji tam, gdzie to możliwe.

27. Korzystaj z niezliczonych predefiniowanych funkcji PHP, nie próbuj budować własnych, ponieważ te natywne będą znacznie szybsze; jeśli masz funkcje bardzo czasochłonne i pochłaniające zasoby, rozważ napisanie ich jako rozszerzeń lub modułów C.

28. Profiluj swój kod. Profiler pokazuje, które części kodu zużywają ile czasu. Debuger Xdebug zawiera już profilera. Profilowanie przedstawia przegląd wąskich gardeł.

29. Udokumentuj swój kod.

30. Poznaj różnicę między dobrym a złym kodem.

31. Trzymaj się standardów kodowania, ułatwi ci to zrozumienie kodu innych ludzi, a inni ludzie będą mogli zrozumieć twój.

32. Oddzielny kod, treść i prezentacja: trzymaj kod PHP oddzielnie od kodu HTML.

33. Nie zawracaj sobie głowy używaniem złożonych systemów szablonów, takich jak Smarty, użyj tego, który jest już dołączony do PHP, zobacz ob_get_contents i wyodrębnij i po prostu pobierz dane ze swojej bazy danych.

34. Nigdy nie ufaj zmiennym pochodzącym z obszaru użytkownika (takim jak $_POST) używaj mysql_real_escape_string podczas używania mysql i htmlspecialchars podczas wysyłania jako HTML.

35. Ze względów bezpieczeństwa nigdy nie umieszczaj w swoim webroocie niczego, co mogłoby ujawnić informacje o ścieżkach, rozszerzeniach i konfiguracji, takich jak display_errors lub phpinfo().

36. Wyłącz register_globals (domyślnie jest wyłączone z jakiegoś powodu!). Żaden skrypt na poziomie produkcyjnym nie powinien wymagać tego włączenia, ponieważ stanowi to zagrożenie bezpieczeństwa. Napraw wszystkie skrypty, które wymagają jej włączenia i napraw wszystkie skrypty, które wymagają jej wyłączenia za pomocą funkcji Unregister_globals(). Zrób to teraz, ponieważ jest ustawione do usunięcia w PHP6.

37. Unikaj używania zwykłego tekstu podczas przechowywania i oceny haseł, aby uniknąć narażenia, zamiast tego używaj skrótu, takiego jak skrót md5.

38. Użyj ip2long() i long2ip() do przechowywania adresów IP jako liczb całkowitych zamiast łańcuchów.

39. Możesz uniknąć wymyślania koła na nowo, korzystając z projektu PEAR, który zapewnia istniejący kod o wysokim standardzie.

40. Używając header('Lokalizacja: '.$url); pamiętaj, aby podążać za nim kostką(); ponieważ skrypt nadal działa, nawet jeśli lokalizacja się zmieniła, lub unikaj używania go razem, jeśli to możliwe.

41. W OOP, jeśli metoda może być metodą statyczną, zadeklaruj ją jako statyczną. Poprawa prędkości jest czterokrotnie większa.

42. Inkrementacja zmiennej lokalnej w metodzie OOP jest najszybsza. Prawie to samo, co wywołanie zmiennej lokalnej w funkcji i zwiększenie zmiennej globalnej jest 2 razy wolniejsze niż zmienna lokalna.

43. Inkrementacja właściwości obiektu (np. $this->prop++) jest 3 razy wolniejsza niż zmienna lokalna.

44. Inkrementacja niezdefiniowanej zmiennej lokalnej jest 9-10 razy wolniejsza niż wstępnie zainicjowanej.

45. Samo zadeklarowanie zmiennej globalnej bez użycia jej w funkcji spowalnia działanie (mniej więcej o taką samą wartość, jak zwiększanie zmiennej lokalnej). PHP prawdopodobnie sprawdza, czy globalny istnieje.

46. ​​Wywołanie metody wydaje się być niezależne od liczby metod zdefiniowanych w klasie, ponieważ dodałem 10 dodatkowych metod do klasy testowej (przed i po metodzie testowej) bez zmiany wydajności.

47. Metody w klasach pochodnych działają szybciej niż te zdefiniowane w klasie bazowej.

48. Wywołanie funkcji z jednym parametrem i pustą treścią funkcji zajmuje mniej więcej tyle samo czasu, co wykonanie 7-8 operacji $localvar++. Podobne wywołanie metody to oczywiście około 15 operacji $localvar++.

49. Nie wszystko musi być OOP, często jest to tylko narzut, każde wywołanie metody i obiektu zajmuje dużo pamięci.

50. Nigdy nie ufaj danym użytkownika, unikaj ciągów znaków, których używasz w zapytaniach SQL, używając mysql_real_escape_string zamiast mysql_escape_string lub addslashes. Zauważ też, że jeśli magic_quotes_gpc jest włączone, powinieneś najpierw użyć ukośników.

51. Unikaj problemu z wstrzykiwaniem nagłówka funkcji PHP mail().

52. Usuń ustawienie zmiennych bazy danych (co najmniej hasło), nie powinieneś go potrzebować po nawiązaniu połączenia z bazą danych.

53. RTFM! PHP oferuje fantastyczny podręcznik, prawdopodobnie jeden z najlepszych na świecie, co czyni go bardzo praktycznym językiem, dostarczającym praktycznych przykładów i rozmawiającym prostym angielskim.

Oto niektóre ze sztuczek i porad dotyczących PHP, które mogą być bardzo przydatne dla tych, którzy dopiero rozpoczęli naukę języka PHP, a także dla tych, którzy rozwijają się od dłuższego czasu. RTFM jest jednak najbardziej efektywnym sposobem na naukę PHP.

Aishwara Babbera

Aishwar Babber jest zapalonym blogerem i digital marketerem. Uwielbia rozmawiać i blogować o najnowszych technologiach i gadżetach, co motywuje go do biegania Baza Gizmo. Obecnie ćwiczy swoją wiedzę z zakresu marketingu cyfrowego, SEO i SMO jako pełnoetatowy marketer przy różnych projektach. Jest aktywnym inwestorem w AfiliacjaBay i reżyser w ImageStation.

22 przemyślenia na temat „50+ sztuczek i porad PHP dla początkujących i programistów”

  1. Niesamowity post, te porady i wskazówki dotyczące php bardzo pomagają wszystkim nowym programistom php, a dzięki nim mam też kilka wskazówek i sztuczek dotyczących php, których w ogóle nie znam.

    Odpowiedz
  2. Świetne wskazówki, ale myślę, że powinieneś zmienić punkt 37. Prosty skrót md5 nie jest wystarczająco wyrafinowany w świecie, w którym żyjemy.

    Odpowiedz
  3. nr 15
    jeśli/inaczej jest szybsze niż switch, masz rację, zrobiłem kilka testów,
    ale powinieneś rozważyć, w którym przypadku użyć przełącznika.

    Przejechałem to, testując 10,1000,100000 i 1 milion cykli i wynik to:
    w 100k cykli otrzymujesz 0,13s różnicy na lokalnej maszynie (na zewnętrznym serwerze powinieneś uzyskać mniejszą różnicę).

    Powinieneś więc rozważyć użycie przełącznika if/else. Wolę używać przełącznika ze względu na czystszy kod. Używając 1 przełącznika, 2 przełączników, a nawet 100 przełączników zamiast if/else… to nie ma znaczenia, to bez znaczenia.

    Odpowiedz
  4. nr 26
    prowadzę test teraz,
    z $i++ i ++$i

    to proste – liczba 26 nie ma znaczenia, dopóki nie chcesz zużyć więcej niż 10 mil. cykle.
    A różnica?

    10 mil cykli z $i++ 2.67448 s
    10mil cykli z ++$i 2.605528 s

    Odpowiedz
  5. 24. (…) Wypróbuj Smarty lub Cache Lite.
    33. Nie zawracaj sobie głowy używaniem złożonych systemów szablonów, takich jak Smarty

    ok.

    (osobiście po prostu usunąłbym #33; smarty (lub inny system szablonów) ma wiele zalet w porównaniu z funkcjami ob_…)

    Odpowiedz
  6. Echo jest szybsze niż drukowanie przez jeden kod, więc to naprawdę nie ma znaczenia. A print() jest funkcją, echo nie. Spróbuj tego:

    $zmienna i print 'zmienna jest ustawiona!';

    A o inkrementacji: $i += 1; jest najszybszy.

    Świetny artykuł, dzięki!

    Odpowiedz
  7. Świetny artykuł dzięki za udostępnienie
    Świetne wskazówki, ale myślę, że powinieneś zmienić punkt 37. Prosty skrót md5 nie jest wystarczająco wyrafinowany w świecie, w którym żyjemy.

    Odpowiedz

Zostaw komentarz