10 PHP Developer interview questions and answers

Find and hire talent with confidence. Prepare for your next interview. The right questions can be the difference between a good and great work relationship.

Trusted by


Do you have any experience with LAMP?

LAMP is an open-source solution stack that contains everything you need to create a complete, stand-alone platform for your web application—Linux, Apache, MySQL, and PHP. This question is a good opportunity for your prospective programmer to detail any experience they have taking a web project from conception to completion.

What are PHP sessions and how do they work?

What you’re really asking is whether they know how to use session_start(). It either creates or resumes a session based on an identifier that is sent to the server via a GET or POST request or a cookie. The most common use case scenario on the web is when a website won’t let you comment or post without first prompting a login. How does it know whether you’re logged in? One way would be to place a cookie in the user’s browser; on every request the cookie is sent server-side, where PHP can be used to determine which information is sent back and displayed to the client. While session_start() saves session data in files by default, it is also possible to store sessions directly in the database.

How are classes loaded in PHP?

This is a good way to gauge a developer’s understanding of autoloading. Whenever a class is instantiated, a function is triggered. You can register a function with the spl_autoload que detailed below, courtesy of php.net:

bool spl_autoload_register ([ callable $autoload_function [, bool$throw = true [, bool $prepend = false ]]] )

What are some of your favorite PHP design patterns?

Design patterns are essentially best-practice templates that programmers can use to consistently write well-designed code more quickly. Here are a couple examples along with their use cases:

The Singleton: Used when you only want to allow access to one instance of a particular class. The Factory: The factory pattern makes it easier to create multiple classes without repeating code. To change, rename, or replace the class, simply modify the factory.

Determine the value of $pear after executing the code below. What will strlen($pear) return? Explain your answer.

$pear = ‘PEAR ’;
$pear[12] = ‘PHP Extension and Application Repository’;

This question reveals a few interesting things about the way PHP interprets code. The value of $pear in the code above will be the string "PEAR P" or the string "PEAR " followed by seven spaces, followed by "P," which is the first character in the string "PHP Extension and Application Repository." The value returned by strlen($pear) will thus be 13. Since an element of a string can only consist of one character, and the count of elements within a string starts with 0, $pear[12] sets the 13th character of the string to the letter "P." Interestingly enough, we chose to set the 13th value of a string that only has five characters. While other language interpreters might have thrown an out-of-bounds index error, PHP is more forgiving and fills in the blanks with empty spaces.

Determine the output of the code below. Explain your answer.

var_dump(42 == 042);
var_dump(‘042’ == 42);
var_dump(‘042’ === 42);

This question quizzes the coder on how the PHP interpreter handles numbers and strings. i. var_dump(42 == 042); will output bool(false) because the PHP interpreter treats leading zeroes as octals. 042 is 32 in decimal, which does not equal 42. ii. var_dump(‘042’ == 42); will output bool(true) because PHP interpreter will coerce the string into an integer but ignore the leading zero. 42 is equal to 42. iii. var_dump(‘042’ === 42); will output bool(false) because the === operator performs a stricter comparison and will not coerce the integer into a string.

Explain why the two code snippets below will evaluate to the same output.

$x = true or false;
var_dump($x);
$x = true and false;
var_dump($x);

This question is designed to test a coder’s knowledge of the order of operations. The first block of code is more straightforward, evaluating to true because of the "or" operator. The second code block, however, would typically be expected to evaluate to false. Instead, it evaluates to true because of how the PHP interpreter handles the order of operations: "=" is prioritized leading to the following equivalent code snippet: $x = true; // sets $x equal to true True and false; // evaluates to false, but does not affect anything

If $x = 100 + "25%" + "$40" what is the value of $x and why?

The answer is $x = 125, because PHP uses automatic type conversion in deciding how to treat variables and values depending on how they are used. When PHP encounters a string during an arithmetic operation, it will interpret any numerical value and ignore the remainder in order from left to right. Strings that don’t start with numbers are evaluated to zero. $x = 100 + 25 + 0 = 125.

Explain the difference between classes and interfaces.

In layman’s terms, an interface is a class without all the business logic. In an interface, all methods must be public and multiple inheritance is supported. However, all methods must be defined within the class that implements them. Abstract classes, on the other hand, can be declared with modifiers like public or internal, and can define properties or variables. Abstract classes do not support multiple inheritance and can only be extended by one abstract class.

Predict the output of the code below. Explain your answer.

$x = 2
$y = 4
$z = 6
if($z > $y > $x) {
  echo "true";
}else{
  echo "false";
}

At first glance, one would expect the boolean to evaluate to "true" because 6 > 4 > 2. However, the correct answer is "false" because PHP will first evaluate $z > $y, which returns a boolean value of 1 or true. It is this boolean value of 1 that is compared to the next integer in the chain, bool(1) > $z, which will result in NULL and echo "false."

ar_FreelancerAvatar_altText_292
ar_FreelancerAvatar_altText_292
ar_FreelancerAvatar_altText_292

4.8/5

Rating is 4.8 out of 5.

clients rate PHP Developers based on 70K+ reviews

Hire PHP Developers

PHP Developers you can meet on Upwork

  • $35 hourly
    Santosh Kumar P.
    PHP Developer
    • 5.0
    • (108 jobs)
    Lucknow, UTTAR PRADESH
    vsuc_fltilesrefresh_TrophyIcon PHP
    API Integration
    Git
    MongoDB
    SaaS
    Website Development
    AWS Lambda
    MySQL
    Magento 2
    Linux System Administration
    Yii
    Magento 2
    JavaScript
    Magento
    I have developed many sites from scratch using PHP and MySQL. And Have proven 8+ years of experience in this field My major skill is Magento and Magento2 Core skills are Extension and Plugin development [CMS]- Magento I have completed more than 50 extensions of Magento. Some examples: - reward system - payment methods - rental system - pos - Dynamic lightbox - address validator etc. My Magento skill set magento theme magento Theme Development And Design manipulation magneto newsletter magento version upgrade magento product import magento payment integration magento shipping method magento cms magento block magento category magento custom attribute magento frontend magento slideshow magento jquery magento Speed Optimization Design Experience Ui Design Responsive Web Design Theme Customization Website redesign Additional knowledge: jquery javascript php css3 html5 etc.
  • $22 hourly
    Bilal M.
    PHP Developer
    • 5.0
    • (7 jobs)
    Indore, MP
    vsuc_fltilesrefresh_TrophyIcon PHP
    Ecommerce Store Setup
    Stripe API
    Google Shopping
    JavaScript
    CSS 3
    HTML5
    Ecommerce Website
    MySQL
    Plugin Development
    Custom Ecommerce Platform Development
    Magento 2
    Magento
    I have developed many sites from scratch using PHP and MySQL. And Have proven 3+ years of experience in this industry. My major skill is Magento and Magento2. My services include: * Magento websites creation * Magento themes (templates) development * Magento extensions development * Magento upgrade to newest versions & Magento installation * Magento customization * Magento Integration with 3rd party Payment Gateway * Magento Multi Store * Magento Optimization (Website Speed enhancements) * Magento Bug Fix * Diagnose performance issues * Magento Wishlist/Gift Extensions * Magento Google Analytic Tracking * Inventory / Attribute / Category loads into Magento * Magento Server Maintenance and Patch installations * Magento API projects Don't hesitate to hire me in case you have doubts. Thanks
  • $12 hourly
    Bharat p.
    PHP Developer
    • 4.8
    • (151 jobs)
    Barwala Bawal, India
    vsuc_fltilesrefresh_TrophyIcon PHP
    Magento
    Magento 2
    Bug Fix
    MySQL
    jQuery
    HTML
    Ecommerce Website
    Web Development
    XML
    AJAX
    WordPress
    CSS
    I am a highly-skilled, Experienced Magento Developer with 8+ years of experience developing and customizing Magento themes and extensions for both the community and enterprise edition of Magento 1 & 2. I provide unified commerce experiences integrating Magento with third-party external systems. - Work Experience Summary: My 8+ years of experience covers Magento 1 and Magento 2 Developments. - My services include: * Magento websites creation * Magento themes (templates) development * Magento extensions development * Magento upgrade to newest versions & Magento installation * Magento customization * Magento Integration with 3rd party Payment Gateway * Magento Multi Store * Magento Optimization (Website Speed enhancements) * Magento Bug Fix * Diagnose performance issues * Magento Wishlist/Gift Extensions * Magento Google Analytic Tracking * Inventory / Attribute / Category loads into Magento * Magento Server Maintenance and Patch installations * Magento API projects Don't hesitate to hire me in case you have doubts.
Want to browse more talent? Sign up

Join the world’s work marketplace

Find Talent

Post a job to interview and hire great talent.

Hire Talent
Find Work

Find work you love with like-minded clients.

Find Work