what is php

Wat is PHP? Waarom PHP leren en begrijpen de moeite waard is

Heb je je ooit afgevraagd "Wat is PHP eigenlijk?". Je hebt de term vast wel eens gelezen of gehoord. Uit mijn ervaring blijkt dat de meeste mensen nog steeds weinig idee hebben van wat PHP is en hoe het werkt. Dit artikel is bedoeld om deze kenniskloof te dichten en zal je helpen als het onderwerp PHP nieuw voor je is en je nog weinig technische kennis hebt.

Eerst en vooral is PHP een scripttaal. Het werd ontwikkeld in 1995 en heette oorspronkelijk "Personal Home Page Tools". Tegenwoordig wordt het "Hypertext Preprocessor" genoemd, wat een passender naam is omdat PHP serverzijdige input genereert voor HTML – PHP maakt HTML dus dynamisch.

PHP is een van de standaardtalen op het internet, samen met HTML, CSS en JavaScript. De meeste mensen kunnen alleen om PHP heen bij het bouwen van hun website, omdat er content management systemen (CMS) zoals WordPress zijn die het PHP-gedeelte als kant-en-klare oplossing aanbieden. Met PHP leer je echter de mogelijkheid om je CMS (en dus WordPress in het bijzonder) aan te passen op elke manier die je maar wilt. Dit kan gebeuren in de vorm van het bestand functions.php of in de vorm van een plugin. Als je al enige ervaring met WordPress hebt, zul je gemerkt hebben dat het gebruik van plugins je website op vele manieren kan verbeteren.

PHP-versies

php supported versions
Bron: php.net (vanaf maart 2022)

De laatste versie van PHP is 8.1. Op de officiële PHP-website kunt u zien welke PHP-versies nog actief worden ondersteund en welke niet meer. Sommige hosters bieden nog geen PHP 8 aan voor websites van klanten. Dit komt omdat deze PHP-versie nog niet volledig compatibel is met WordPress of met alle WordPress plugins.

Wanneer u WordPress host bij Raidboxes , kunt u de PHP-versie van uw website met slechts één klik wijzigen - PHP 8 en PHP 8.1 zijn ook beschikbaar. In ons helpcentrum leggen wij uit hoe u een nieuwe PHP-versie correct kunt testen. Als u nog vragen heeft, neem dan gerust contact met ons op via de live chat.

Algemene concepten in PHP

Als koppeling met de databank worden normaal gesproken gebruikersinputs, zoals formuliergegevens, met PHP verwerkt en wordt de inhoud aan de serverzijde of rechtstreeks in de databank ingevoerd. Als je bijvoorbeeld een contactformulier op je website hebt, zal de verwerking van een verzoek zeker via PHP gebeuren. 

PHP-bestanden kunnen in andere PHP-bestanden worden geïntegreerd met behulp van het commando include. Dit is nuttig om overbodige code te vermijden en om bepaalde functionaliteiten te scheiden. Dit maakt het debuggen natuurlijk ook gemakkelijker. Dit is ook handig als hetzelfde element op meerdere pagina's moet worden gebruikt: bijvoorbeeld bij de header.

PHP – een serverzijdige taal

Een eigenaardigheid van PHP is dat scripts altijd op de server worden uitgevoerd. Als je een PHP-script hebt geschreven, laad je het bestand op de server en kun je het vervolgens via de webbrowser openen door daar het pad op te geven. Dit is vergelijkbaar met het patroon "Adres van de server"/submap/filename.php. Als je in de adresbalk van je browser kijkt, hebben veel websites de extensie .html, maar dit werkt ook met .php-bestanden.

Uiteraard moet de server ook geschikt zijn voor PHP, d.w.z. dat de PHP-interpreter geïnstalleerd moet zijn. Dit is echter de standaard voor de webservers van tegenwoordig.

Dit betekent ook: als je PHP wilt ontwikkelen, moet je ofwel toegang hebben tot de bestandsstructuur op je webserver (via FTP) of je moet een lokale server met PHP opzetten voor ontwikkeling. Voor dit doel is er, onder andere, het zeer bekend pakket XAMPP, dat precies voor dit doel is ontworpen en alles bevat wat je nodig hebt voor lokale ontwikkeling.

Als je een willekeurig getal op je website wilt weergeven, maak je dat in een PHP-script. HTML is niet in staat een dergelijke bewerking alleen uit te voeren. In het volgende voorbeeld wordt een willekeurig getal tussen 1 en 5 weergegeven op je website: 

what is php code example

Dieses Beispiel demonstriert, dass hierbei Abschnitte geschrieben werden, die entweder aus PHP Code oder aus HTML Code bestehen und vom Server entsprechend interpretiert werden. PHP Code wird immer von den beiden Tags “<?php” und “?>” umschlossen. Alles, was sich außerhalb dieser Tags befindet, ist HTML Code und wird vom Server nur gesendet, aber nicht verarbeitet. Du verwendest die PHP Tags aber beim Schreiben des Codes genau so, wie du HTML Tags verwendest.

Bestandsextensie

Zodra je ook maar één regel PHP-code wilt uitvoeren, moet de bestandsextensie .php zijn in plaats van .html. Alleen PHP code die ook in .php bestanden staat zal worden uitgevoerd! Daarom moet je letten op de bestandsextensie wanneer je PHP gebruikt.

De server voert het script uit wanneer het bestand wordt geladen, in de meeste gevallen resulteert dit in waarden voor variabelen die op de uiteindelijke website op de een of andere manier met HTML worden weergegeven.

Ik doe nu hetzelfde met JavaScript:

what is php code example

JavaScript genereert ook dynamiek op een website. Het grote verschil is dat het willekeurige getal in PHP alleen door de server kan worden gegenereerd en dat de browser alleen het eindresultaat van de server ontvangt. De browser weet niets van het proces erachter. Als je de broncode van de pagina bekijkt, zul je in de HTML-code een getal zien staan, dat je handmatig had kunnen invoeren. JavaScript daarentegen wordt uitgevoerd aan de client-zijde (d.w.z. in de browser). Daarom kun je ook de JavaScript-broncode van een site in de browser bekijken.

PHP lijkt voor veel mensen een beetje chaotisch omdat het zo is ingebed in HTML. Er zijn zogenaamde template engines die de PHP-code "scheiden" van de HTML, zoals Smarty, als je je verder in PHP wilt verdiepen. Als je PHP alleen in de WordPress context wilt gebruiken, is zoiets niet nodig.

Gegevenstypen in PHP

PHP is een zwak getypeerde taal. Eenvoudig gezegd betekent dit dat de PHP-interpreter zelf uitzoekt welk gegevenstype een variabele is. In andere sterk getypeerde talen, zoals Java, moeten de gegevenstypen voor elke variabele normaliter rechtstreeks door de persoon achter de computer worden gespecificeerd, wil het programma überhaupt uitvoerbaar zijn. In PHP is een eenvoudige toewijzing voldoende, zoals het volgende voorbeeld aantoont:

what is php code example

Op dit punt is het eigenlijk alleen belangrijk om te begrijpen dat PHP normaal gesproken het gegevenstype automatisch instelt. Het gegevenstype van een variabele kan echter ook handmatig in de code worden geconverteerd met behulp van typecast. Hiervoor gelden bepaalde regels en beperkingen. Helaas valt dit buiten het bestek van dit artikel – als je er meer over wilt lezen, raad ik je dit artikel op de officiële PHP website aan.

Kortom, de PHP-interpreter herkent alle inhoud als overeenkomstige datatypes. Dit is erg handig en gebruiksvriendelijk, maar natuurlijk ook een mogelijke bron van fouten. Mijn ervaring met PHP tot dusver is echter dat fouten in dit opzicht vrij zeldzaam zijn.

Objecten en klassen in PHP

Een klasse kan worden gebruikt om bepaalde objecten te beschrijven. Dit gebeurt via attributen, die de eigenschappen van een object zijn. Met methoden kan bepaald gedrag van het object worden weergegeven – met andere woorden, de vraag is: "Wat kan mijn object?

Bij het maken van objecten ga je altijd op dezelfde manier te werk: beschrijf het object in het algemeen als een klasse met attributen en methoden en creëer vervolgens een instantie van deze klasse op het vereiste punt in je code. Objectoriëntatie is in het begin vaak moeilijk te begrijpen, dus ik zal het kort uitleggen aan de hand van het voorbeeld van een bal:

what is php code example

Dit deel wordt opgeslagen als een vaste definitie in het bestand ball.php. Op dit punt is alleen gedefinieerd wat een bal is (standaard) en wat hij kan doen, en bestaat er geen bal-object in je code. De bal wordt altijd aangemaakt op de plaats (of in het bestand) waar hij nodig is.

what is php code example

Nu heb je een rode bal gemaakt met een diameter van 20 cm. Indien je de blauwe standaardbal van 30 cm wilt maken, is het voldoende om het object te instantiëren met 

what is php code example

Om de diameter van de bal te controleren, zou je dit kunnen toevoegen: 

what is php code example

Als je nu dit PHP-bestand opent op je server met een browser, wordt de diameter van de bal weergegeven als een getal.

Wat je nu met deze bal doet is aan jou. Wil je dat de bal grafisch wordt weergegeven en dat twee mensen de bal heen en weer schoppen? Wil je dat de bal een dynamisch stijlelement wordt op je website? Wil je de bal via zogenaamde methodes een bepaald gedrag laten vertonen, zodat hij bijvoorbeeld kan rollen of geschopt kan worden? Er zijn vele mogelijkheden! Aangezien dit artikel slechts als inleiding bedoeld is, raad ik je aan hier verder te lezen. Objectoriëntatie is een groot onderwerp op zich.

Arrays in PHP

Als je nog geen arrays kent: het zijn als het ware tabellen waarin een bepaalde inhoud aan een bepaalde sleutel is toegewezen. Deze inhoud is toegankelijk via de sleutel. Het is alsof je een lijst met getallen schrijft en jezelf afvraagt: "Wat is het derde getal in de lijst met getallen?" Het antwoord daarop zou het nummer op de derde positie zijn. Of met andere woorden: de inhoud van de regel met sleutel 3.

Arrays werken in PHP ook een beetje anders dan in andere talen – zij worden geïmplementeerd in de vorm van een zogenaamde map. Om het nog eens met Java te vergelijken: in Java heeft een array een sleutel in de vorm van een getal nodig, bijvoorbeeld myLittleArray[5]. Hier worden de "rijen" gewoon geteld, beginnend bij 0. In PHP daarentegen worden strings gebruikt als sleutels om termen aan de inhoud te kunnen toekennen. Voor meer details en voorbeelden, kijk hier.

"*" geeft verplichte velden aan

Toestemming*
Dit veld dient ter validatie en mag niet worden gewijzigd.

PHP in WordPress

WordPress werkt ook met PHP. De meeste plugins zijn zelf in PHP geschreven en hebben via PHP toegang tot de backend en de database van WordPress. Details hierover kun je lezen in de officiële WordPress documentatie. WordPress is zo ontworpen dat er absoluut geen PHP-kennis nodig is voor de basisfunctionaliteit. PHP is echter nodig voor bijna elke individuele aanpassing.

PHP-problemen oplossen

Fouten komen in elke programmeertaal voor, dus moet er in elke taal op de een of andere manier aan debugging worden gedaan. PHP biedt een aantal handige functies daarvoor.

error_log

Deze regel maakt het mogelijk om via server logs te debuggen – maar hiervoor moet je toegang hebben tot de bestandsstructuur van de server (meestal via FTP). Als je geen toegang tot de server hebt, zul je foutmeldingen op de website moeten weergeven, wat meestal nogal ongewenst is. In het geval van PHP-fouten kan de browser ook alleen een lege pagina weergeven – PHP-fouten zijn dus des te ernstiger voor je website. Als je WordPress gebruikt, kan WP Debug je hierbij helpen.

Nogmaals, er is een verschil tussen JavaScript en PHP: als je JavaScript code een fout bevat, kan het zijn dat slechts een enkel element niet werkt. Als het PHP-script fouten bevat, zie je normaal gesproken niets dan een wit scherm (tenzij je de foutmeldingen op de website hebt geactiveerd).

Overigens kan het tot fouten in PHP-bestanden leiden als de tag ?> helemaal aan het eind wordt gelaten. De tag ?> moet weggelaten worden als het bestand alleen uit PHP-code bestaat.

Conclusie

PHP is een iets gecompliceerdere taal. Maar het is de moeite waard om het te leren – tenminste als je meer wilt doen dan alleen kant-en-klare WordPress themes en plugins gebruiken. Of zelfs als je je grenzen hebt bereikt met JavaScript, HTML en CSS. Als je je WordPress thema wilt wijzigen of je eigen plugins wilt schrijven, kun je niet om PHP heen. Je hebt ook PHP nodig voor alle databasezaken – en zelfs SQL, tenminste als je je aan de standaard wilt houden. Als je PHP wilt leren, is er een tutorial beschikbaar.

Jouw vragen over PHP

Welke vragen heb je voor Patrick? Voel je vrij om de commentaarfunctie te gebruiken. Wil je op de hoogte blijven van nieuwe artikelen over WordPress en webdesign? Volg ons dan op Twitter, Facebook, LinkedIn of via onze nieuwsbrief.

Vond je het artikel leuk?

Met jouw beoordeling help je ons om onze inhoud nog verder te verbeteren.

Laat een reactie achter

Je e-mailadres wordt niet gepubliceerd.