50+ PHP-trucs en tips voor beginners en ontwikkelaars

PHP is de meest bruikbare taal bij het maken van blogs en websites, het heeft veel functies die kunnen worden gebruikt om nog meer aangepaste functies af te leiden. We hebben de meest bruikbare verzameld PHP-trucs en tips voor beginners en zelfs ontwikkelaars. Deze PHP-trucs maken uw codering productiever en effectiever.

50+ PHP-trucs en tips voor beginners

Lijst met PHP-trucs en tips

1. echo is sneller dan afdrukken.

2. Wikkel uw tekenreeks tussen enkele aanhalingstekens (') in plaats van dubbele aanhalingstekens (") is sneller omdat PHP zoekt naar variabelen binnen "..." en niet in '...'. Gebruik dit wanneer u geen variabelen gebruikt die u moet evalueren in uw snaar.

3. Gebruik sprintf in plaats van variabelen tussen dubbele aanhalingstekens, het is ongeveer 10x sneller.

4. Gebruik meerdere parameters van echo (of gestapeld) in plaats van aaneenschakeling van strings.

5. Gebruik voorberekeningen, stel de maximale waarde in voor uw for-loops voor en niet in de loop. dat wil zeggen: voor ($x=0; $x < count($array); $x), dit roept elke keer de functie count() aan, gebruik in plaats daarvan $max=count($array) voordat de for-loop begint.

6. Schakel uw variabelen uit of maak ze null om geheugen vrij te maken, vooral grote arrays.

7. Vermijd magie zoals __get, __set, __autoload.

8. Gebruik waar mogelijk required() in plaats van required_once().

9. Gebruik volledige paden in omvat en vereist, minder tijd besteed aan het oplossen van de OS-paden.

10. required() en include() zijn in alle opzichten identiek, behalve dat er stops nodig zijn als het bestand ontbreekt. Qua prestaties is er weinig verschil.

11. Sinds PHP5 kan het tijdstip waarop het script begon te worden uitgevoerd worden gevonden in $_SERVER['REQUEST_TIME'], gebruik dit in plaats van time() of microtime().

12. PCRE-regex is sneller dan EREG, maar kijk altijd of u in plaats daarvan snellere native functies zoals strncasecmp, strpbrk en stripos kunt gebruiken.

13. Probeer bij het ontleden met XML in PHP xml2array, dat gebruik maakt van de PHP XML-functies, voor HTML kun je het DOM-document van PHP of DOM XML in PHP4 proberen.

14. str_replace is sneller dan preg_replace, str_replace is over het algemeen het beste, maar strtr is soms sneller met grotere strings. Het gebruik van array() in str_replace is meestal sneller dan meerdere str_replace.

15. "else if"-statements zijn sneller dan select-statements, ook wel case/switch genoemd.

16. Foutonderdrukking met @ is erg traag.

17. Om het bandbreedtegebruik te verminderen, schakelt u mod_deflate in Apache v2 in of probeert u voor Apache v1 mod_gzip.

18. Sluit uw databaseverbindingen als u klaar bent.

19. $row['id'] is 7 keer sneller dan $row[id], want als je geen aanhalingstekens opgeeft, moet het raden welke index je bedoelde, ervan uitgaande dat je geen constante bedoelde.

20. Gebruik tags bij het declareren van PHP, aangezien alle andere stijlen worden afgeschreven, inclusief korte tags.

21. Gebruik strikte code, vermijd het onderdrukken van fouten, mededelingen en waarschuwingen, wat resulteert in schonere code en minder overhead. Overweeg om error_reporting(E_ALL) altijd aan te zetten.

22. PHP-scripts worden 2-10 keer langzamer aangeboden door Apache httpd dan een statische pagina. Probeer statische pagina's te gebruiken in plaats van server-side scripts.

23. PHP-scripts (tenzij ze in de cache zijn opgeslagen) worden elke keer dat u ze aanroept direct gecompileerd. Installeer een PHP-cachingproduct (zoals memcached of eAccelerator of Turck MMCache) om de prestaties doorgaans met 25-100% te verhogen door compileertijden te verwijderen. U kunt zelfs eAccelerator op cPanel instellen met EasyApache3.

24. Een alternatieve cachingtechniek als je pagina's hebt die niet al te vaak veranderen, is om de HTML-uitvoer van je PHP-pagina's in de cache te plaatsen. Probeer Smarty of Cache Lite.

25. Gebruik isset waar mogelijk ter vervanging van strlen. (dwz: if (strlen($foo) < 5) { echo “Foo is te kort”; } vs. if (!isset($foo{5})) { echo “Foo is te kort”; } ).

26. ++$i is sneller dan $ i++, dus gebruik pre-increment waar mogelijk.

27. Maak gebruik van de talloze voorgedefinieerde functies van PHP, probeer niet om uw eigen functies te bouwen, aangezien de native functies veel sneller zullen zijn; als je functies hebt die veel tijd en middelen verbruiken, overweeg dan om ze als C-extensies of modules te schrijven.

28. Profileer je code. Een profiler laat je zien welke delen van je code hoeveel tijd in beslag nemen. De Xdebug debugger bevat al een profiler. Profilering toont u de knelpunten in overzicht.

29. Documenteer uw code.

30. Leer het verschil tussen goede en slechte code.

31. Houd u aan de coderingsnormen, het zal het voor u gemakkelijker maken om de code van andere mensen te begrijpen en andere mensen zullen de uwe kunnen begrijpen.

32. Scheid code, inhoud en presentatie: houd je PHP-code gescheiden van je HTML.

33. Gebruik geen ingewikkelde sjabloonsystemen zoals Smarty, gebruik degene die al in PHP zit, bekijk ob_get_contents en extraheer, en haal eenvoudig de gegevens uit uw database.

34. Vertrouw nooit variabelen die van gebruikersland komen (zoals van $_POST) gebruik mysql_real_escape_string bij gebruik van mysql en htmlspecialchars bij uitvoer als HTML.

35. Om veiligheidsredenen mag je nooit iets hebben dat informatie over paden, extensies en configuratie, zoals display_errors of phpinfo() in je webroot zou kunnen onthullen.

36. Schakel register_globals uit (het is standaard uitgeschakeld om een ​​reden!). Geen enkel script op productieniveau zou dit ingeschakeld moeten hebben, omdat het een veiligheidsrisico is. Repareer alle scripts die het vereisen en repareer alle scripts die het vereisen met unregister_globals(). Doe dit nu, want het is ingesteld om te worden verwijderd in PHP6.

37. Vermijd het gebruik van platte tekst bij het opslaan en evalueren van wachtwoorden om blootstelling te voorkomen, gebruik in plaats daarvan een hash, zoals een md5-hash.

38. Gebruik ip2long() en long2ip() om IP-adressen op te slaan als gehele getallen in plaats van strings.

39. U kunt voorkomen dat u het wiel opnieuw uitvindt door het PEAR-project te gebruiken, waardoor u bestaande code van een hoge standaard krijgt.

40. Bij gebruik van header('Locatie: '.$url); vergeet niet om het te volgen met een dobbelsteen(); terwijl het script blijft draaien, ook al is de locatie veranderd, of vermijd waar mogelijk het allemaal samen te gebruiken.

41. In OOP, als een methode een statische methode kan zijn, declareer deze dan statisch. Snelheidsverbetering is met een factor 4..

42. Het verhogen van een lokale variabele in een OOP-methode gaat het snelst. Bijna hetzelfde als het aanroepen van een lokale variabele in een functie en het verhogen van een globale variabele is 2 keer langzamer dan een lokale variabele.

43. Het verhogen van een objecteigenschap (bijv. $this->prop++) is 3 keer langzamer dan een lokale variabele.

44. Het verhogen van een ongedefinieerde lokale variabele is 9-10 keer langzamer dan een vooraf geïnitialiseerde variabele.

45. Het declareren van een globale variabele zonder deze in een functie te gebruiken, vertraagt ​​de zaken (met ongeveer dezelfde hoeveelheid als het verhogen van een lokale var). PHP doet waarschijnlijk een controle om te zien of de global bestaat.

46. ​​Het aanroepen van methoden lijkt onafhankelijk te zijn van het aantal methoden dat in de klasse is gedefinieerd, omdat ik nog 10 methoden aan de testklasse heb toegevoegd (voor en na de testmethode) zonder dat de prestatie is veranderd.

47. Methoden in afgeleide klassen werken sneller dan degene die zijn gedefinieerd in de basisklasse.

48. Een functieaanroep met één parameter en een lege functietekst duurt ongeveer even lang als het uitvoeren van 7-8 $localvar++-bewerkingen. Een vergelijkbare methodeaanroep is natuurlijk ongeveer 15 $localvar++ operaties.

49. Niet alles hoeft OOP te zijn, vaak is het gewoon overhead, elke methode en objectaanroep verbruikt veel geheugen.

50. Vertrouw nooit gebruikersgegevens, ontsnap aan uw strings die u gebruikt in SQL-query's met mysql_real_escape_string, in plaats van mysql_escape_string of addlashes. Merk ook op dat als magic_quotes_gpc is ingeschakeld, je eerst stripslashes moet gebruiken.

51. Vermijd het probleem met de header-injectie van de PHP mail()-functie.

52. Schakel uw databasevariabelen uit (minimaal het wachtwoord), u zou het niet nodig moeten hebben nadat u de databaseverbinding hebt gemaakt.

53. RTFM! PHP biedt een fantastische handleiding, mogelijk een van de beste die er is, waardoor het een zeer praktische taal is, met werkende voorbeelden en praten in gewoon Engels.

Dit zijn enkele van de PHP-trucs en -tips die erg handig kunnen zijn voor degenen die net zijn begonnen met het leren van de PHP-taal, en ook voor degenen die zich sinds een goede tijd ontwikkelen. RTFM is echter de meest efficiënte manier om PHP te leren.

Aishwar Babber

Aishwar Babber is een gepassioneerd blogger en een digitale marketeer. Hij praat en blogt graag over de nieuwste technologie en gadgets, wat hem motiveert om te rennen GizmoBase. Momenteel oefent hij zijn expertise op het gebied van digitale marketing, SEO en SMO uit als fulltime marketeer op verschillende projecten. Hij is een actieve investeerder in AffiliateBay en een directeur bij ImageStation.

22 gedachten over "50+ PHP-trucs en tips voor beginners en ontwikkelaars"

  1. Nr. 15
    if/els is sneller dan switch, je hebt gelijk, ik heb wat tests gedaan,
    maar u moet overwegen in welk geval u de schakelaar moet gebruiken.

    Ik heb het gefietst, 10,1000,100000 en 1 miljoen cycli getest en het resultaat is:
    in 100k cycli krijg je 0,13s verschil op lokale machine (op externe server zou je minder verschil moeten krijgen).

    Dus je zou moeten overwegen om if/els van switch te gebruiken. Ik gebruik liever switch vanwege schonere code. Het gebruik van 1 schakelaar, 2 schakelaar, zelfs 100 schakelaar in plaats van als/anders … het maakt niet uit, het is zinloos.

    Antwoorden
  2. Nr. 26
    ik voer nu de test uit,
    met $i++ en ++$i

    het is simpel - nummer 26 is zinloos totdat je meer dan 10mil wilt gebruiken. cycli.
    En verschil?

    10mil cycli met $i++ 2.67448 s
    10mil cycli met ++$i 2.605528 s

    Antwoorden
  3. 24. (…) Probeer Smarty of Cache Lite.
    33. Gebruik geen complexe sjabloonsystemen zoals Smarty

    ok.

    (Ik zou persoonlijk de #33 gewoon verwijderen; smarty (of andere sjabloonsystemen) heeft veel voordelen vergeleken met de ob_-functies...)

    Antwoorden
  4. Echo is sneller dan afdrukken met één opcode, dus het maakt echt niet uit. En print() is een functie, echo niet. Probeer dit:

    $variabele en print 'variabele is ingesteld!';

    En over ophogen: $i += 1; is de snelste.

    Geweldig artikel, bedankt!

    Antwoorden
  5. Dat is een mooie samenvatting van enkele PHP-codetrucs. Het is essentieel dat een ontwikkelaar ook rekening houdt met de prestaties van de code die hij/zij ontwikkelt. Bedankt voor het delen.

    Antwoorden
  6. Geweldig artikel bedankt voor het delen
    Goede tips, maar ik denk dat je punt 37 moet veranderen. Een simpele md5-hash is niet echt geavanceerd genoeg in de wereld waarin we leven.

    Antwoorden

Laat een bericht achter