Einleitung
Ein Vorstellungsgespräch für eine PHP-Entwicklerposition ist nicht nur eine Prüfung der Sprachsyntax, sondern auch ein Test des Verständnisses von Architektur, Sicherheit und modernen Ansätzen. Viele Kandidaten scheitern an grundlegenden Fragen, weil sie sich nicht systematisch vorbereiten. In diesem Artikel analysieren wir die Top-Fragen, die in PHP-Vorstellungsgesprächen am häufigsten gestellt werden, mit Codebeispielen und Erklärungen. Das Material ist sowohl für Anfänger als auch für erfahrene Entwickler nützlich, die ihr Wissen auffrischen möchten.
Datentypen und Typumwandlung
Welche Datentypen gibt es in PHP?
PHP unterstützt 8 grundlegende Datentypen, die in drei Gruppen unterteilt sind:
- Skalare:
bool,int,float,string. - Zusammengesetzte:
array,object,callable,iterable. - Spezielle:
resource,null.
Beispiel für eine Typüberprüfung:
$value = "123";if (is_numeric($value)) { $intValue = (int) $value; // Umwandlung zu int var_dump($intValue); // int(123)}Was ist der Unterschied zwischen == und ===?
Der Operator == vergleicht Werte nach Typumwandlung, während === ohne Umwandlung vergleicht (strikter Vergleich). Dies ist eine der häufigsten Fallen:
var_dump(0 == "0"); // bool(true)var_dump(0 === "0"); // bool(false)OOP in PHP: Vererbung, Interfaces und Traits
Was sind Traits und wozu werden sie benötigt?
Traits sind ein Mechanismus zur Wiederverwendung von Code in PHP, der das Problem der einfachen Vererbung löst. Ein Trait kann nicht instanziiert werden, kann aber mit use in eine Klasse eingebunden werden:
trait Logger { public function log($message) { echo "[LOG]: $message"; }}
class User { use Logger;}
$user = new User();$user->log("Benutzer erstellt");Was ist der Unterschied zwischen einer abstrakten Klasse und einem Interface?
- Abstrakte Klasse kann Methodenimplementierungen und Eigenschaften enthalten. Sie wird mit
extendsvererbt. - Interface definiert nur Methodensignaturen (ohne Implementierung). Eine Klasse kann mehrere Interfaces mit
implementsimplementieren.
interface CanFly { public function fly();}
abstract class Bird { abstract public function sound(); public function eat() { echo "Isst Korn"; }}
class Eagle extends Bird implements CanFly { public function sound() { echo "Schrei"; } public function fly() { echo "Fliegt"; }}Arbeit mit Datenbanken und PDO
Was ist PDO und warum wird es verwendet?
PDO (PHP Data Objects) ist eine Erweiterung für die Arbeit mit Datenbanken, die eine einheitliche Schnittstelle für verschiedene DBMS (MySQL, PostgreSQL, SQLite usw.) bietet. Der Hauptvorteil ist der Schutz vor SQL-Injection durch vorbereitete Abfragen:
$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');$stmt->execute([':email' => 'user@example.com']);$user = $stmt->fetch(PDO::FETCH_ASSOC);Wie behandelt man Fehler in PDO?
Die beste Praxis ist, PDO in den Exception-Modus zu versetzen:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);try { $pdo->exec("INSERT INTO users (name) VALUES ('John')");} catch (PDOException $e) { echo "Fehler: " . $e->getMessage();}Sicherheit und häufige Schwachstellen
Wie schützt man eine Anwendung vor XSS und SQL-Injection?
Im Vorstellungsgespräch ist es wichtig, nicht nur theoretisches Wissen, sondern auch praktische Maßnahmen zu zeigen:
- SQL-Injection: Verwenden Sie PDO mit vorbereiteten Abfragen (siehe Beispiel oben).