50+ PHP трика и съвети за начинаещи и разработчици

PHP е най-полезният език за създаване на блогове и уебсайтове, той има много функции, които могат да се използват за извличане на още повече персонализирани функции. Събрахме най-полезните PHP трикове и съвети за начинаещи и дори Developers. Тези PHP трикове правят кодирането ви продуктивно и по-ефективно.

50+ PHP трика и съвети за начинаещи

Списък с PHP трикове и съвети

1. ехото е по-бързо от печат.

2. Увийте низа си в единични кавички (') вместо в двойни кавички (") е по-бързо, защото PHP търси променливи вътре в "...", а не в "...", използвайте това, когато не използвате променливи, които трябва да оценявате във вашия низ.

3. Използвайте sprintf вместо променливи, съдържащи се в двойни кавички, това е около 10 пъти по-бързо.

4. Използвайте множество параметри на echo (или подредени) вместо конкатенация на низове.

5. Използвайте предварителни изчисления, задайте максималната стойност за вашите for-цикли преди, а не в цикъла. т.е.: за ($x=0; $x < count($array); $x), това извиква функцията count() всеки път, вместо това използвайте $max=count($array), преди да започне цикълът for.

6. Премахнете или нулирайте вашите променливи, за да освободите памет, особено големи масиви.

7. Избягвайте магии като __get, __set, __autoload.

8. Използвайте require() вместо require_once(), където е възможно.

9. Използвайте пълни пътища в включва и изисква, по-малко време, прекарано за разрешаване на пътищата на ОС.

10. require() и include() са идентични във всяко отношение с изключение на изискване за спиране, ако файлът липсва. По отношение на производителността има много малка разлика.

11. Тъй като PHP5, времето, когато скриптът е започнал да се изпълнява, може да се намери в $_SERVER['REQUEST_TIME'], използвайте това вместо time() или microtime().

12. Редовното изражение на PCRE е по-бързо от EREG, но винаги вижте дали вместо това можете да използвате по-бързи естествени функции като strncasecmp, strpbrk и stripos.

13. Когато анализирате с XML в PHP, опитайте xml2array, който използва PHP XML функциите, за HTML можете да опитате DOM документа на PHP или DOM XML в PHP4.

14. str_replace е по-бърз от preg_replace, str_replace е най-добрият като цяло, но strtr понякога е по-бърз с по-големи низове. Използването на array() вътре в str_replace обикновено е по-бързо от множеството str_replace.

15. Инструкциите “else if” са по-бързи от операторите select, известни още като case/switch.

16. Потискането на грешки с @ е много бавно.

17. За да намалите използването на честотна лента, включете mod_deflate в Apache v2 или за Apache v1 опитайте mod_gzip.

18. Затворете връзките си с базата данни, когато приключите с тях.

19. $row['id'] е 7 пъти по-бърз от $row[id], защото ако не предоставите кавички, той трябва да познае кой индекс сте имали предвид, като приемем, че не сте имали предвид константа.

20. Използвайте тагове при деклариране на PHP, тъй като всички останали стилове се амортизират, включително късите тагове.

21. Използвайте строг код, избягвайте потискането на грешки, известия и предупреждения, което води до по-чист код и по-малко режийни разходи. Помислете за това, че error_reporting(E_ALL) винаги е включено.

22. PHP скриптовете се обслужват 2-10 пъти по-бавно от Apache httpd, отколкото статична страница. Опитайте се да използвате статични страници вместо скриптове от страна на сървъра.

23. PHP скриптовете (освен ако не са кеширани) се компилират в движение всеки път, когато ги извикате. Инсталирайте PHP продукт за кеширане (като memcached или eAccelerator или Turck MMCache), за да увеличите обикновено производителността с 25-100% чрез премахване на времето за компилиране. Можете дори да настроите eAccelerator на cPanel, като използвате EasyApache3.

24. Алтернативна техника за кеширане, когато имате страници, които не се променят твърде често, е да кеширате HTML изхода на вашите PHP страници. Опитайте Smarty или Cache Lite.

25. Използвайте isset, където е възможно, вместо strlen. (т.е.: if (strlen($foo) < 5) { echo „Foo е твърде кратко“; } срещу if (!isset($foo{5})) { echo „Foo е твърде кратко“; } ).

26. ++$i е по-бърз от $ i++, така че използвайте предварително увеличение, където е възможно.

27. Използвайте безбройните предварително дефинирани функции на PHP, не се опитвайте да изградите свои собствени, тъй като родните ще бъдат много по-бързи; ако имате много отнемащи време и ресурси функции, помислете за писането им като C разширения или модули.

28. Профилирайте своя код. Профильорът ви показва кои части от вашия код колко време отнемат. Инструментът за отстраняване на грешки в Xdebug вече съдържа профайлър. Профилирането ви показва тесните места в общ преглед.

29. Документирайте вашия код.

30. Научете разликата между добър и лош код.

31. Придържайте се към стандартите за кодиране, това ще ви улесни да разберете кода на други хора и други хора ще могат да разберат вашия.

32. Отделете код, съдържание и представяне: пазете вашия PHP код отделно от вашия HTML.

33. Не се притеснявайте да използвате сложни шаблонни системи като Smarty, използвайте тази, която вече е включена в PHP, вижте ob_get_contents и извлечете и просто изтеглете данните от вашата база данни.

34. Никога не се доверявайте на променливи, идващи от потребителска земя (като от $_POST), използвайте mysql_real_escape_string, когато използвате mysql, и htmlspecialchars, когато извеждате като HTML.

35. От съображения за сигурност никога не разполагайте с нищо, което би могло да разкрие информация за пътища, разширения и конфигурация, като display_errors или phpinfo() във вашия уеб корен.

36. Изключете register_globals (по подразбиране е деактивиран по някаква причина!). Никой скрипт на производствено ниво не трябва да има нужда от това активирано, тъй като представлява риск за сигурността. Коригирайте всички скриптове, които го изискват, и коригирайте всички скриптове, които го изискват изключено, като използвате unregister_globals(). Направете това сега, тъй като е настроено да бъде премахнато в PHP6.

37. Избягвайте да използвате обикновен текст, когато съхранявате и оценявате пароли, за да избегнете излагане, вместо това използвайте хеш, като например md5 хеш.

38. Използвайте ip2long() и long2ip(), за да съхранявате IP адреси като цели числа вместо низове.

39. Можете да избегнете преоткриването на колелото, като използвате проекта PEAR, който ви дава съществуващ код от висок стандарт.

40. При използване на header('Местоположение: '.$url); не забравяйте да го последвате с die(); тъй като скриптът продължава да се изпълнява, въпреки че местоположението се е променило или избягвайте да го използвате заедно, когато е възможно.

41. В ООП, ако методът може да бъде статичен метод, декларирайте го за статичен. Подобряването на скоростта е с коефициент 4.

42. Увеличаването на локална променлива в OOP метод е най-бързото. Почти същото като извикването на локална променлива във функция и увеличаването на глобална променлива е 2 пъти бавно от локална променлива.

43. Увеличаването на свойство на обект (напр. $this->prop++) е 3 пъти по-бавно от локална променлива.

44. Увеличаването на недефинирана локална променлива е 9-10 пъти по-бавно от предварително инициализирана.

45. Само декларирането на глобална променлива, без да се използва във функция, забавя нещата (с приблизително същото количество като увеличаване на локална променлива). PHP вероятно прави проверка, за да види дали глобалното съществува.

46. ​​Извикването на метод изглежда независимо от броя на методите, дефинирани в класа, защото добавих още 10 метода към тестовия клас (преди и след тестовия метод) без промяна в производителността.

47. Методите в производните класове работят по-бързо от дефинираните в базовия клас.

48. Извикване на функция с един параметър и празно тяло на функцията отнема приблизително същото време като извършването на 7-8 $localvar++ операции. Подобен метод извикване, разбира се, е около 15 $localvar++ операции.

49. Не всичко трябва да е ООП, често е просто режийно, всяко извикване на метод и обект консумира много памет.

50. Никога не се доверявайте на потребителски данни, избягвайте низовете си, които използвате в SQL заявки, като използвате mysql_real_escape_string, вместо mysql_escape_string или добавяте наклонени черти. Също така имайте предвид, че ако magic_quotes_gpc е активиран, първо трябва да използвате наклонени черти.

51. Избягвайте проблема с инжектирането на заглавката на функцията PHP mail().

52. Премахнете настройките на променливите на базата данни (най-малко паролата), не би трябвало да се нуждаете от нея, след като направите връзката с базата данни.

53. RTFM! PHP предлага фантастично ръководство, вероятно едно от най-добрите там, което го прави много удобен език, предоставя работни примери и говори на обикновен английски.

Това са някои от PHP триковете и съветите, които могат да бъдат много полезни за тези, които току-що са започнали да изучават езика PHP, както и за тези, които се развиват от добро време. RTFM обаче е най-ефективният начин да научите PHP.

Айшвар Бабър

Aishwar Babber е страстен блогър и дигитален маркетинг. Той обича да говори и блогове за най-новите технологии и джаджи, което го мотивира да бяга GizmoBase. В момента той практикува своя опит в дигиталния маркетинг, SEO и SMO ​​като маркетолог на пълен работен ден по различни проекти. Той е активен инвеститор в AffiliateBay и режисьор в ImageStation.

22 мисли за „50+ PHP трика и съвети за начинаещи и разработчици“

  1. Страхотен пост, тези php съвети и трикове помагат много за всички нови php разработчици и от него също получих някои php съвети и трикове, които изобщо не знам.

    Отговор
  2. Страхотни съвети, но мисля, че трябва да промените точка 37. Един обикновен md5 хеш не е достатъчно сложен в света, в който живеем.

    Отговор
  3. номер 15
    if/else е по-бързо от switch, прав си, направих някои тестове,
    но трябва да помислите в кой случай да използвате превключвателя.

    Обработих го, тествайки 10,1000,100000 и 1 милион цикъла и резултатът е:
    за 100k цикъла получавате 0,13s разлика на локалната машина (на външен сървър, трябва да получите по-малко разлика).

    Така че трябва да помислите за използването на if/else на switch. Предпочитам да използвам превключвател поради по-чист код. Използването на 1 превключвател, 2 превключвателя, дори 100 превключвателя вместо if/else ... няма значение, това е безсмислено.

    Отговор
  4. номер 26
    пускам тест сега,
    с $i++ и ++$i

    просто е – числото 26 е безсмислено, докато не искате да използвате повече от 10 mil. цикли.
    И разлика?

    10 mil цикъла с $i++ 2.67448 s
    10 mil цикъла с ++$i 2.605528 s

    Отговор
  5. 24. (...) Опитайте Smarty или Cache Lite.
    33. Не се притеснявайте да използвате сложни шаблонни системи като Smarty

    ОК.

    (аз лично просто бих изтрил #33; smarty (или други шаблонни системи) има много предимства в сравнение с ob_ функциите...)

    Отговор
  6. Echo е по-бързо от печат с един операционен код, така че наистина няма значение. И print() е функция, echo не е. Опитайте тази:

    $variable и отпечатайте 'променливата е зададена!';

    И относно увеличаването: $i += 1; е най-бързият.

    Страхотна статия, благодаря!

    Отговор
  7. Това е хубав обзор на някои трикове с PHP код. От съществено значение е разработчикът също да вземе предвид производителността на кода, който разработва. Благодаря за споделянето.

    Отговор
  8. Здравейте, страхотното му съдържание и php е много готин език, със сигурност ще следвам тези трикове, поради характеристиките му е много лесен за разбиране и научаване.

    Отговор
  9. Страхотна статия благодаря за споделянето
    Страхотни съвети, но мисля, че трябва да промените точка 37. Един обикновен md5 хеш не е достатъчно усъвършенстван в света, в който живеем.

    Отговор

Оставете коментар