P
prepair.app
Interview starten →
EnglishУкраїнськаРусскийDeutsch
🐘

Junior PHP-BackendPHP-Backend-Interviewfragen

Junior · keine Erfahrung / unter 1 Jahr

PHP-Interviews decken Sprachsemantik, OOP, Laravel oder Symfony, MySQL sowie grundlegende Web-Sicherheit ab. Hier findest du die häufigsten Fragen mit Musterantworten. Junior: Grundlagentheorie, Definitionen und einfache Praxisfälle.

Probier es aus — kein Konto nötig
Deine Frage wird vorbereitet…

Themen zur Vorbereitung

OOP und SOLID in PHP
Laravel / Symfony
MySQL und Query-Optimierung
Composer und Autoloading
Sessions, Cookies, Sicherheit
PSR-Standards

7 Fragen auf Junior-Niveau mit Antworten

1

Was ist der Unterschied zwischen `==` und `===`?

Antwort

== vergleicht nach Type Juggling, === vergleicht Wert und Typ. PHP 8 hat das Juggling deutlich vernünftiger gemacht — 0 == "foo" ist jetzt false —, aber die Regel bleibt: === verwenden, wenn kein Grund dagegen spricht, denn die Vergleichstabelle sollte niemand auswendig kennen müssen.

2

Was ist der Unterschied zwischen einem Interface, einer abstrakten Klasse und einem Trait?

Antwort

Ein Interface deklariert, was eine Klasse kann, und enthält keine Implementierung. Eine abstrakte Klasse kann Zustand und Teilimplementierung besitzen, und eine Klasse erweitert nur eine einzige. Ein Trait ist Code, der in eine Klasse eingemischt wird — PHPs Antwort auf fehlende Mehrfachvererbung. Traits sind für gemeinsame Implementierung da, Interfaces für einen gemeinsamen Vertrag.

3

Was schränken `public`, `protected` und `private` eigentlich ein?

Antwort

public ist von überall erreichbar, protected aus der Klasse selbst und ihren Subklassen, private nur aus der deklarierenden Klasse. private ist strenger als viele erwarten — eine Subklasse sieht es nicht. Standardmäßig private verwenden und erst erweitern, wenn etwas von außen wirklich Zugriff braucht.

4

Was ist der Unterschied zwischen `include` und `require`?

Antwort

Beide binden eine Datei ein; require löst bei fehlender Datei einen Fatal Error aus, include nur eine Warnung und läuft weiter. Die _once-Varianten überspringen eine bereits geladene Datei. In modernem Code begegnest du dem selten, weil Composers Autoloader Klassen über den Namespace auflöst und du den Pfad nie selbst schreibst.

5

Was ist Composer und wofür ist `composer.lock` da?

Antwort

Composer löst Abhängigkeiten auf und installiert sie. composer.json beschreibt, was du willst, composer.lock hält fest, was tatsächlich aufgelöst wurde — deshalb wird die Lock-Datei committet, und deshalb reproduziert composer install auf dem Server genau denselben Abhängigkeitsbaum, statt neuere Versionen zu wählen.

6

Was ist Type Juggling und wo beißt es immer noch?

Antwort

PHP wandelt Typen um, um sie zu vergleichen oder mit ihnen zu rechnen. Es beißt immer noch, wenn ein String aus einem Formular dort ankommt, wo eine Zahl erwartet wurde, und bei losen Vergleichen innerhalb von in_array oder switch, die standardmäßig == verwenden. declare(strict_types=1) am Dateianfang macht aus der stillen Umwandlung einen Fehler.

7

Was sind die Superglobals und warum sollte man sie nicht direkt lesen?

Antwort

$_GET, $_POST, $_SERVER, $_SESSION und die übrigen halten Request-Daten. Direktes Auslesen verteilt unvalidierte Eingaben über den ganzen Code und macht alles, was sie anfasst, untestbar, weil es keinen konstruierbaren Request gibt. Das Request-Objekt eines Frameworks kapselt sie genau deshalb, weshalb man es benutzt.

🦎

Antworten lesen reicht nicht

Im echten Interview sprichst du unter Druck. Cam stellt genau diese Fragen, bewertet jede Antwort und zeigt dir genau, was du verbessern musst.

Junior PHP-Backend-Interview üben →
Kostenlos · 3 Interviews im Monat

Weitere Level — PHP-Backend

Middle PHP-BackendSenior PHP-BackendAlle PHP-Backend-Fragen

Weitere Spezialisierungen

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🦫Junior Go-Backend🟢Junior Node.js-Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript⚛️Junior React Frontend