כאשר אנו עושים מופע חדש של מחלקה אנו עושים כך:

$db = new database;

ואז אנחנו יכולים לגשת לכל הפונקציות והמאפיינים של המחלקה דרך המשתנה $db, אך מה אם אנחנו רוצים שתתבצע פעולה כל שהיא כאשר אנו עושים מופע חדש של מחלקה? בשביל זה יש את הבנאי. הבנאי מתבצע כאשר אנו קוראים למחלקה. מחלקה לדוגמא:

class User {
private $username;
private $email;

public function login($usernmae, $password){
...
}
}

ונגיד שאני רוצה שברגע שאני קורא למחלקה זה יבדוק אם המשתמש שגולש באתר כרגע מחובר. אז אני יכול ליצור פונקציה חדשה שנקראת __constructor או פונקציה שנקראת בשם של המחלקה.

class User {
private $username;
private $email;

public function User() {
..
}

public function login($usernmae, $password){
...
}
}

דוגמא נוספת זה במחלקה mysqli שאחראית על חיבור עם מסד הנתונים. ברגע שאני יוצר אותה אני צריך להזין נתונים של החיבור:

$db = new mysqli('host', 'user', 'password', 'database', 'port');