30 PHP Coding Interview Questions for Developers

php coding interview questions
Developer Skill Assessment Tool

Modern web development would be incomplete without PHP, a robust and flexible scripting language. It is part of the famous LAMP stack, which includes PHP as the core programming language. 

This article provides extensive PHP programming challenges appropriate for developers of all skill levels. This article will present a wide variety of coding tasks, from predicting the results of code snippets to finding bugs in the code. Technical hiring managers can use these challenges to assess candidates for knowledge of PHP and its frameworks, and ultimately find the best applicants for a given role.

Interview Questions for Beginner PHP Developers

When preparing coding challenges for beginner PHP developers, it’s important to evaluate fundamental concepts and skills related to PHP and Laravel. Some areas which must be assessed include basic PHP syntax, control structures, functions, arrays, strings and sessions. Here are 10 coding challenges in this regard:

Question 1

Predict the output of the below code:

<?php
	$a = 10;
	$b = 20;
	$c = $a + $b;
	$d = $a * $b;
	$e = $d % $c;
	echo $e;
?>

Question 2

Guess the output of the below code:

 <?php
	$str1 = "One, ";
	$str2 = "Two";
	$str3 = $str1 . $str2;
	echo $str3;
?>

Question 3

Identify the issue in the below code:

<?php
	$str1 = "Hello, ";
	$str2 = "world!";
	$str3 = $str1 - $str2;
	echo $str3;
?>

Question 4

You need to write a PHP script that will convert temperatures between Celsius and Fahrenheit. The input parameters should be the temperature value and the unit (Celsius or Fahrenheit). The script will return the converted value in the other unit.

Question 5

Guess the output of the below code:

<?php
	$arr = array(5, 8, 3, 1);
	sort($arr);
	echo $arr[2];
?>

Question 6

Will the below code throw any error? If yes, identify the error.

 <?php
	$num = 5;
	if $num > 0 {
    	echo "Positive";
	}
?>

Question 7

Create a PHP script that shows a list of products in a simple e-commerce catalog. Each product will have a name, description, price and featured image. You can store the product data in an array, a JSON file or a database. The script should generate an HTML page that will display the product details in a user-friendly format.

Question 8

Analyze the below code and suggest the output:

 <?php
	$sum = 0;
	for ($i = 1; $i <= 5; $i++) {
    	$sum += $i;
	}
	echo $sum;
?>

Question 9

Find the issue with below code snippet:

<?php
	for ($i; $i < 5; $i++) {
    	echo $i;
	}
?>

Question 10

Analyze the below code and identify the issue.

<?php
	$quote = "This is a quote from shakespeare.";
	echo "Shakespeare said, "$quote"";
?>

Interview Questions for Mid-level PHP Developers

When designing interview questions for mid-level PHP developers, you should prepare challenges aiming to assess advanced concepts of PHP and web development. Some areas that should be evaluated include advanced object-oriented programming (OOP), design patterns, database interaction, restful APIs and exception handling. Below you will find 10 coding challenges which are ideal for mid-level PHP developers:

Question 1

What is the issue in the below code:

 <?php
class A {
	public static function who() {
    	echo __CLASS__;
	}
 
	public static function test() {
    	self::who();
	}
}
 class B extends A {
	public static function who() {
    	echo __CLASS__;
	}
}
 B::test();
?>

Question 2

Predict the output of the below code:

<?php
abstract class Animal {
	abstract protected function makeSound();
}
 
interface Walkable {
	public function walk();
}
 class Dog extends Animal implements Walkable {
	public function makeSound() {
    	return "Woof!";
	}
 
	public function walk() {
    	return "Walking...";
	}
}
 $dog = new Dog();
echo $dog->makeSound() . " " . $dog->walk();
?>

Question 3

Implement a set of RESTful APIs to create a simple e-commerce website. The website will have features like the ability to browse products, add items to a shopping cart and checkout using the Stripe payment gateway. Use OOP principles and design patterns like factory method pattern, dependency injection and observer pattern to write scalable, modular and testable code. You need to handle exceptions gracefully by logging and displaying errors to users in a user-friendly manner.

Question 4

Build a social network platform using PHP and MySQL. The platform should allow users to create profiles, add friends, post status and comment on their friends’ statuses. Use design patterns like decorator pattern, factory pattern and observer pattern to ensure modularity, scalability and testability. Implement RESTful APIs for user authentication, content creation and display. Make sure you handle exceptions for error reporting and logging.

Question 5

Will the below code throw any error?

<?php
class Singleton {
	private static $instance;
 
	private function __construct() {}
 
	public static function getInstance() {
    	if (!self::$instance) {
        	self::$instance = new self();
    	}
    	return self::$instance;
	}
}
 $singleton = new Singleton();
?>

Question 6

What will be the output of the below code:

<?php
class Singleton {
	private static $instance = null;
 	private function __construct() {}
 	public static function getInstance() {
    	if (self::$instance === null) {
        	self::$instance = new Singleton();
    	}
    	return self::$instance;
	}
}
 $instance1 = Singleton::getInstance();
$instance2 = Singleton::getInstance();
echo spl_object_id($instance1) === spl_object_id($instance2) ? "Same" : "Different";
?>

Question 7

Analyze the below code and suggest if it is vulnerable to an injection attack.

<?php
$dsn = "mysql:host=localhost;dbname=test_db";
$user = "username";
$password = "password";
try {
    $conn = new PDO($dsn, $user, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "INSERT INTO users (name, email) VALUES ('Nick Cain', '[email protected]')";
    $conn->exec($sql);
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
?>

Question 8

You need to develop a file management tool using PHP that allows users to upload, download and manage files. Use adapter and factory design patterns to handle file storage and retrieval. Use exception handling to handle errors and provide feedback to users.

Question 9

Analyze the below code and advise what the issue is in the below API call:

<?php
$data = file_get_contents("https://api.myurl.com/endpoint");
$response = json_decode($data, true);
if ($response["success"]) {
    echo "Resource data: " . $response["data"];
} else {
    echo "Error: " . $response["error_message"];
}
?>

Question 10

You need to build an online booking system using PHP. Some of its features would be to allow users to book appointments or make reservations. Use design patterns like the observer pattern and the decorator pattern to manage notifications and user interface elements.

Interview Questions for Expert PHP Developers

When preparing coding challenges for expert-level PHP engineers, you should pay attention to strong problem-solving skills, the design and architecture of the system and expertise in the framework. Some of the core areas for evaluating expert PHP programmers are advanced database interaction, performance optimization, security, CI/CD, cloud infrastructure and advanced debugging. Find 10 coding challenges for expert PHP engineers below:

Question 1

Do you see any security issue in the below code? If yes, how would you correct it?

<?php
$userInput = $_GET['search'];
echo "Search results for: {$userInput}";
?>

Question 2

Can you predict the output of the below query?

SELECT u.id, u.name, COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at >= '2022-01-01' AND o.status = 'completed'
GROUP BY u.id
HAVING order_count >= 3
ORDER BY order_count DESC;

Question 3

Can you guess the duration of the script execution?

<?php
$start = microtime(true);
$numbers = range(1, 100000);
$evenNumbers = array_filter($numbers, function ($number) {
	return $number % 2 === 0;
});
$duration = microtime(true) - $start;
echo "Duration: {$duration} seconds";
?>

Question 4

Can you optimize the code snippet provided in the previous challenge so that it takes less time to execute.

Question 5

Develop a RESTful API for a SaaS application that handles user authentication, role-based access control, rate limiting, versioning and proper error codes. Ensure the API follows best practices and developers can easily consume it.

Question 6

Analyze the below code and optimize it in terms of memory management.

<?php
$data = file_get_contents('large_file.txt');
$lines = explode("\n", $data);
$lineCount = count($lines);
echo "Line count: {$lineCount}";
?>

Question 7

Can you guess what is wrong with below execution of the API call?

<?php
header('Content-Type: application/json');
$data = ['error' => 'Invalid request'];
http_response_code(400);
echo json_encode($data);
?>

Question 8

You need to develop a report generation system for an e-commerce platform that can handle complex queries and join multiple tables. Users should be able to generate reports in various formats (e.g. CSV, JSON, PDF). Implement the solution using advanced database interaction techniques and optimize for performance.

Question 9

What is wrong with the below code?

 <?php
function getUserByEmail(PDO $pdo, $email) {
	$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
	$stmt->execute([$email]);
	return $stmt->fetch(PDO::FETCH_ASSOC);
}
?>

Question 10

Implement a search feature that supports pagination, filtering and sorting for an e-commerce website. Use PHP Data Objects (PDO) or a popular ORM like Eloquent (from Laravel) to interact with the database. Use prepared statements and query builders. Extra marks if you use the Laravel framework.

Developer Skill Assessment Tool

Conclusion

This article has presented a diverse set of PHP code challenges that help technical recruiters and hiring managers to evaluate PHP professionals at different career levels. These challenges assess candidates’ PHP proficiency and problem-solving skills. The categorization of these challenges into beginner, mid-level and expert categories makes it easier for technical managers to evaluate a PHP candidate accordingly.

Further reading: