Top 75 PHP Interview Questions & Answers

Top 75 PHP Interview Questions & Answers


  1. What is PHP? Why it is used?
    PHP earlier stood for Personal Home Pages, but now it stands for Hypertext Pre-processor. PHP is a server-side scripting
    language that is used for building web pages and applications. This language includes many Frameworks and CMS for
    creating large websites.
    Even a non-technical person can create web pages or apps using PHP CMS. PHP Supports various CMS like WordPress, Joomla, Drupal and Frameworks like Laravel, CakePHP, Symfony, etc

  2. What are the advantages of PHP?
    Open source
    Robust functions
    Centralized built-in database
    Extensive community support

  3. Who developed PHP?
    PHP was developed by Rasmus Lerdorf in 1994.

  4. What is the latest version of PHP and Mysql?
    PHP 7.1 is the latest version of PHP and 8.0 is the newest version of Mysql.

  5. Please explain the difference between unlink() and unset()?
    unlink() : It is used to delete a file.
    unset() : It is used to unset a file.

  6. How many types of errors in PHP?
    Primarily PHP supports four types of errors, listed below:-

  7. Syntax Error: It will occur if there is a syntax mistake in the script
  8. Fatal Error: It will happen if PHP does not understand what you have written. For example, you are calling a function, but
    that function does not exist. Fatal errors stop the execution of the script.
  9. Warning Error: It will occur in following cases to include a missing file or using the incorrect number of parameters in a
  10. Notice Error: It will happen when we try to access the undefined variable.

  11. What is the significant difference between require() and include()?
    require() : If a required file not found, it will through a fatal error & stops the code execution
    include() : If an essential file not found, It will produce a warning and execute the remaining scripts.

  12. How to we can get IP Address of users machine?
    If we used $_SERVER[‘REMOTE_ADDR’] to get an IP address, but sometimes it will not return the correct value. If the client is
    connected with the Internet through Proxy Server then $_SERVER[‘REMOTE_ADDR’] in PHP, it returns the IP address of the proxy
    server not of the user’s machine.
    So here is a simple function in PHP to find the real IP address of the user’s machine.
    function getRealIpAddr()
    if (!empty($_SERVER[‘HTTP_CLIENT_IP’]))
    elseif (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’]))
    return $ip;

  13. Difference between require() and require_once() in PHP? When can we use these functions?
    require() and require_once() both are used for include PHP files into another PHP files. But the difference is with the help of
    require() we can include the same file many times in a single page, but in case of require_once() we can call the same file
    many times, but PHP includes that file only single time.

  14. What is the difference between GET & POST ?
    These both methods are based on the HTTP method.
    The GET method transfer data in
    the form of QUERY_STRING. Using
    GET it provides a $_GET associative
    array to access data
    The post method transfer form data by HTTP Headers. This POST method does not
    have any restriction on data size to be sent. With POST method data can travel
    within the form of ASCII as well as binary data. Using POST, it provides a $_POST
    associative array to access data.
    For Example:

  15. How can we make a constant in PHP?
    With the help of define(), we can make constants in PHP.
    define(‘DB_NAME’, ‘bestInterviewQ’)

  16. List some array functions in PHP?
    In PHP array() are the beneficial and essential thing. It allows to access and manipulate with array elements.
    List of array() functions in PHP

  17. List some string function name in PHP?
    PHP has lots of string function that helps in development. Here are some PHP string functions.

  18. How can we upload a file in PHP?
    For file upload in PHP make sure that the form uses method=”post” and attribute: enctype=”multipart/form-data”. It specifies
    that which content-type to use when submitting the form.

$target_dir = “upload/”;
$target_file = $target_dir . basename($_FILES[“fileToUpload”][“name”]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
if(isset($_POST[“submit”])) {
$check = getimagesize($_FILES[“fileToUpload”][“tmp_name”]);
if($check !== false) {
echo “File is an image – ” . $check[“mime”] . “.”;
$uploadOk = 1;
} else {
echo “File is not an image.”;
$uploadOk = 0;

  1. Explain the difference between session and cookies in PHP?
    Session and Cookies both functions are used to store information. But the main difference between a session and a cookie
    is that in case of session data is stored on the server but cookies stored data on the browsers.
    Sessions are more secure than cookies because session stored information on servers. We can also turn off Cookies from
    the browser.
    //session variable
    $_SESSION[‘user’] = ‘’;
    //destroyed the entire sessions
    //Destroyed the session variable “user”.
    Example of Cookies
    setcookie(name, value, expire, path,domain, secure, httponly);
    $cookie_uame = “user”;
    $cookie_uvalue= “Umesh Singh”;
    //set cookies for 1 hour time
    setcookie($cookie_uname, $cookie_uvalue, 3600, “/”);
    //expire cookies

  2. What are headers in PHP?
    In PHP header() is used to send a raw HTTP header. It must be called before any actual output is sent, either by normal HTML
    tags, blank lines in a file, or from PHP
    Example :

  3. string: It is the required parameters. It specifies the header string to send.
  4. replace: It is optional. It indicates whether the header should replace previous or add a second header.
  5. http_response_code : It is optional. It forces the HTTP response code to the specified value

  6. What is the difference between file_get_contents() and file_put_contents() in PHP?
    PHP has multiple functions to handle files operations like read, write, create or delete a file or file contents.

  7. file_put_contents():It is used to create a new file.
    Syntax :
    file_put_contents(file_name, contentstring, flag)
    If file_name doesn’t exist, the file is created with the contentstring content. Else, the existing file is override, unless the
    FILE_APPEND flag is set.
  8. file_get_contents(): It is used to read the contents of a text file.

  9. In PHP, how to redirect from one page to another page?
    With the heal of the header(), we can redirect from one page to another in PHP.
    Syntax :

  10. What is the meaning of “enctype= multipart/form-data” ?
    HTML forms provide three methods of encoding.
    This is used to upload files to the server. It means no characters will be encoded. So It is used when a form requires binary
    data, like the contents of a file, to be uploaded.

  11. What is the role of the .htaccess file in php?
    The .htaccess file is a type of configuration file for use on web servers running the Apache Web Server software. It is used to
    alter the configuration of our Apache Server software to enable or disable additional functionality that the Apache Web
    Server software has to offer.

  12. How to add comments in PHP?
    In PHP comments are two types.

  13. Single line comments
  14. Multi line comments
  15. Single line comments: It is used comments a single line of code. It disables a line of PHP code. You have to add // or #
    before the system.
  16. Multi line comments: It is used to comment large blocks of code or writing multiple line comments. You have to add /*
    before and */ after the system.

  17. Explain the difference between array_merge() and array_combine()?

  18. array_combine(): It is used to creates a new array by using the key of one array as keys and using the value of another
    array as values.
    Example :
    $array1 = array(‘key1’, ‘key2’, ‘key3’);
    $array2 = array((‘umesh’, ‘sonu’, ‘deepak’);
    $new_array = array_combine($array1, $array2);
    OUTPUT : Array([key1] => umesh[key2] => sonu[key2] =>deepak)
  19. array_merge(): It merges one or more than one array such that the value of one array appended at the end of the first
    array. If the arrays have the same strings key, then the next value overrides the previous value for that key.
    Example :
    $array1 = array(“one” => “java”,”two” => “sql”);
    $array2 = array(“one” => “php”,”three” => “html”,”four”=>”Me”);
    $result = array_merge($array1, $array2);
    Array ( [one] => php [two] => sql [three] => html [four] => Me )

  20. How to get a total number of elements used in the array?
    We can use the count() or size() function to get the number of elements or values in an array in PHP.
    $element = array(“sunday”,”monday”,”tuesday”);
    echo count($element );
    echo sizeof($element );

  21. What is the difference between public, protected and private?
    PHP has three access modifiers such as public, private and protected.
    public scope of this variable or function is available from anywhere, other classes and instances of the object.
    private scope of this variable or function is available in its class only.
    protected scope of this variable or function is available in all classes that extend the current class including the parent

  22. What is the difference between implode() and explode() in php?
    explode() function breaks a string into an array, but the implode() function returns a series from the elements of an array.
    Example : $arr = array(“1″,”2″,”3″,”4″,”5”);
    $str = implode(“-“,$arr);
    $array2 = “My name is umesh”;
    $a = explode(” “,$array2 );
    print_r ($a);
    $a = Array (“My”, “name”, “is”, “umesh”);

  23. What is the difference server side and browser side validation?
    We need to add validation rules while making web forms. It is used because we need to take inputs from the user in the right
    way like we need the right email address in the email input field. Some time user did not enter the correct address as we
    aspect. That’s why we need validation.
    Validations can be applied on the server side or the client side.
    Server Side Validation
    In the Server Side Validation, the input submitted by the user is being sent to the server and validated using one of the serverside scripting languages like ASP.Net, PHP, etc.
    Client Side Validation
    In the Client Side Validation, we can provide a better user experience by responding quickly at the browser level.

  24. How to create and destroy cookies in PHP?
    A cookie is a small file that stores on user’s browsers. It is used to store users information. We can create and retrieve cookie
    values in PHP.
    A cookie can be created with the setcookie() function in PHP.
    Create Cookie
    $cookie_name = “username”;
    $cookie_value = “Umesh Singh”;
    setcookie($cookie_name, $cookie_value, time() + (86400 * 30), “/”); // 86400 = 1 day
    Update Cookie
    $cookie_name = “username”;
    $cookie_value = “Alex Porter”;
    setcookie($cookie_name, $cookie_value, time() + (86400 * 30), “/”);
    Delete Cookie
    setcookie(“username”, “”, time() – 3600);

  25. What is the difference between fopen() and fclose()?
    These both are PHP inbuilt function which is used to open & close a file which is pointed file pointer. fopen() fclose()

  26. This method is used to open a file in PHP. This method is used to close a file in PHP. It returns true or
    false on success or failure.
  27. $myfile = fopen(“index.php”, “r”) or
    die(“Unable to open file!”);
    $myfile = fopen(“index.php”, “r”);

  28. What is the difference between php 5 and php 7?
    There are differences between php5 and php7.
    On our website you will find industy’s best PHP interview questions for 5 year experience.

  29. How to get last inserted id after insert data from a table in mysql?
    PHP 5 is released 28 August 2014 but PHP 7 released on 3 December 2015
    It is one of the advantages of the new PHP 7 is the compelling improvement of performance.
    Improved Error Handling
    Supports 64-bit windows systems
    Anonymous Class
    New Operators
    mysql_insert_id() is used to get last insert id. It is used after insert data query. It will work when id is enabled as AUTO

  1. How to remove HTML tags from data in PHP?
    With the help of strip_tags() we can removed html tags from data in PHP. The strip_tags() function strips a string from HTML,
    XML, and PHP tags.
    First parameter is required. It specifies the string to check.
    The second parameter is optional. It specifies allowable tags. Mention tags will not be removed

  2. What is str_replace()?
    It is used to replaces some characters with some other characters in a string.
    Suppose, we want to Replace the characters “Umesh” in the string “Umesh Singh” with “Sonu”
    echo str_replace(“Umesh”,”Sonu”,”Umesh Singh”);

  3. What is substr() in PHP? and how it is used?
    It is used to extract a part of the string. It allows three parameters or arguments out of which two are mandatory, and one is
    echo substr(“Hello world”,6);
    It will return first six characters from a given string.

  4. What the use of var_dump()?
    It is used to dump information about one or more variables. It displays structured data such as the type and value of the
    given variable.
    $var_name1=12; int(12);

  5. What is the use of nl2br() in PHP?
    It is used to inserts HTML line breaks ( <br /> or <br /> ) in front of each newline (\n) in a string.

  6. Please explain the difference between $var and $$var?
    $$var is known as reference variable where $var is a normal variable.

  7. Please explain the difference between isset() and empty()?

  8. isset(): It returns TRUE if the variable exists and has a value other than NULL. It means variables assigned a “”, 0, “0”, or FALSE
    are set.
  9. empty(): It checks to see if a variable is empty. It interpreted as: “” (an empty string).
    isset($var) && !empty($var)
    will be equals to !empty($var)

  10. Explain the difference between mysql_fetch_array(), mysql_fetch_object()?

  11. mysql_fetch_object: It returns the result from the database as objects. In this field can be accessed as $result->name
  12. mysql_fetch_array: It returns result as an array. In this field can be accessed as $result->[name]

  13. What are the __construct() and __destruct() methods in a PHP class?
    Constructor and a Destructor both are special functions which are automatically called when an object is created and
    class Animal
    public $name = “Hello”;
    public function __construct($name)
    echo “Live HERE”;
    $this->name = $name;
    public function __destruct()
    echo “Destroy here”;
    $animal = new Animal(“Bob”);
    echo “My Name is : ” . $animal->name;

  14. How to get complete current page URL in PHP?
    $actual_link = (isset($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] === ‘on’ ? “https” : “http”) .

  15. How to include a file code in different files in PHP?
    For including a file into another PHP file we can use various function like include(), include_once(), require(), require_once().
    <?php require(‘footer.php’) ?>

  16. List some sorting functions in PHP?
    The items of an array can be sorted by various methods.

  17. How can we enable error reporting in PHP?
    The error_reporting() function defines which errors are reported.We can modify these errors in php.ini. You can use these
    given function directly in php file.
    ini_set(‘display_errors’, ‘1’);

  18. What are magic methods?
    Magic methods are unique names, starts with two underscores, which denote means which will be triggered in response to
    particular PHP events.
    The magic methods available in PHP are given below:-

  19. What are traits? How is it used in PHP?
    A trait is a group of various methods that reuse in single inheritance. A Trait is intended to reduce some limitations of single
    inheritance by enabling a developer to reuse sets of processes.
    sort() – it sort arrays in ascending order
    rsort() – it sort arrays in descending order
    asort() – it sorts associative arrays in ascending order, according to the value
    ksort() – it sort associative arrays in ascending order, according to the key
    arsort() – it sorts associative arrays in descending order, according to the value
    krsort() – it sorts associative arrays in descending order, according to the key


trait HelloWorld
use Hello, World;
class MyWorld
use HelloWorld;
$world = new MyWorld();
echo $world->sayHello() . ” ” . $world->sayWorld(); //Hello World

  1. What is inheritance in PHP? How many types of inheritance supports PHP?
    Inheritance has three types, are given below.
    But PHP supports only single inheritance, where only one class can be derived from a single parent class. We can do the
    same thing like multiple inheritance by using interfaces.

  2. How to download files from an external server with code in PHP?
    We can do it by various methods, If you have allow_url_fopen set to true:
    Single inheritance
    Multiple inheritance
    Multilevel inheritance

We can download images or files from an external server with cURL() But in this case, curl has been enabled on both
We can also do it by file_put_contents()
$ch = curl_init();
$source = “”;
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec ($ch);
curl_close ($ch);
$destination = “/images/newlogo.jpg”;
$file = fopen($destination, “w+”);
fputs($file, $data);
/——-This is another way to do it——-/
$url = ‘’;
$img = ‘/images/flower.jpg’;
file_put_contents($img, file_get_contents($url));

  1. What are the different MySQL database engines?
    With PHP 5.6+ “InnoDB” is treated by default database storage engine. Before that MyISAM defaulted storage engine.

  2. What is the difference between = , == and ===?
    These all are PHP Operators.
    == is used to check if the benefits of the two operands are equal or not.
    === is used checks the values as well as its data type.
    We have covered all levels of PHP interview question for fresher – basic and advanced levels.

  3. How to make a class in PHP?
    We can define a class with keyword “class” followed by the name of the class.
    Example :
    class phpClass {
    public function test() {
    echo ‘Test’;


  1. What are the final class and final method?
    Its properties cannot be declared final, only classes and methods may be declared as final. If the class or method defined as
    final, then it cannot be extended.
    class childClassname extends parentClassname {
    protected $numPages;
    public function __construct($autor, $pages) {
    $this->_autor = $autor;
    $this->numPages = $pages;
    final public function PageCount() {
    return $this->numPages;

  2. Please write a query to find the 2nd highest salary of an employee from the employee table?
    You can use this SELECT MAX(salary) FROM employee WHERE Salary NOT IN ( SELECT Max(Salary) FROM employee); Query to find
    the 2nd highest salary of the employee.

  3. What is the role of a limit in a MySQL query?
    It is used with the SELECT statement to restrict the number of rows in the result set. Limit accepts one or two arguments which
    are offset and count.
    The syntax of limit is a
    SELECT name, salary FROM employee LIMIT 1, 2

  4. How to get a total number of rows available in the table?
    COUNT() is used to count the number of rows in the table.
    ) FROM BestPageTable;

  5. What is MVC?
    MVC is an application in PHP which separates the application data and model from the view.
    The full form of MVC is Model, View & Controller. The controller is used to interacting between the models and views.
    Example: Laravel, YII, etc

  6. What is a composer?
    It is an application package manager for the PHP programming language that provides a standard format for managing
    dependencies of PHP software. The composer is developed by Nils Adermann and Jordi Boggiano, who continue to lead the
    project. The composer is easy to use, and installation can be done through the command line.
    It can be directly downloaded from

  7. What is the use of $_SERVER[“PHP_SELF”] variable?
    It is used to get the name and path of current page/file.

  8. What is the use of @ in Php?
    It suppresses error messages. It’s not a good habit to use @ because it can cause massive debugging headaches because
    it will even contain critical errors

  9. What is namespace in PHP?
    Namespace allows us to use the same function or class name in different parts of the same program without causing a
    name collision.
    Namespace MyAPP;
    function output() {
    echo ‘IOS!’;
    namespace MyNeWAPP;
    function output(){
    echo ‘RSS!’;

  10. How we get browser details of clients machine?
    With the help of $_SERVER[‘HTTP_USER_AGENT’]

  11. What is the use of cURL()?
    It is a PHP library and a command line tool that helps us to send files and also download data over HTTP and FTP. It also
    supports proxies, and you can transfer data over SSL connections.
    Using cURL function module to fetch the homepage
    $ch = curl_init(“”);
    $fp = fopen(“index.php”, “w”);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);

  1. Write a program to display Reverse of any number?
    $num = 12345;
    $revnum = 0;
    while ($num > 1)
    $rem = $num % 10;
    $revnum = ($revnum * 10) + $rem;
    $num = ($num / 10);
    echo “Reverse number of 12345 is: $revnum”;

  2. How to check whether a number is Prime or not?
    function IsPrime($n) {
    for($x=2; $x<$n; $x++)
    if($n %$x ==0) {
    return 0;
    return 1;
    $a = IsPrime(3);
    if ($a==0)
    echo ‘Its not Prime Number…..’.”\n”;
    echo ‘It is Prime Number..’.”\n”;

  3. Write a program to display a table of any given number?
    function getTableOfGivenNumber($number) {
    for($i=1 ; $i<=10 ; $i++) {
    echo $i*$number;

  4. How to write a program to make chess?

  5. What is the difference between abstract class and interface in php?
    Many differences occur between the interface and abstract class in php.

  6. What are aggregate functions in MySQL?
    The aggregate function performs a calculation on a set of values and returns a single value. It ignores NULL values when it
    performs calculation except for the COUNT function.
    MySQL provides various aggregate functions that include AVG(), COUNT(), SUM(), MIN(), MAX().

  7. What is the difference between MyISAM and InnoDB?
    There are lots of differences between both storage engines. Some are given below:-
    This is a good question concerning PHP programming interview questions and answers for freshers.

  8. What is SQL injection?

  9. How to redirect https to HTTP URL through .htaccess?
    Place this code in your htaccess file.
    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

  10. What is the Apache?
    Apache HTTP server is the most popular open source web server. Apache has been in use since the year 1995. It powers more
    websites than any other product.
    Abstract methods can declare with protected, public, private. But in case of Interface methods stated with the public.
    Abstract classes can have method stubs, constants, members, and defined processes, but interfaces can only have
    constants and methods stubs.
    Abstract classes do not support multiple inheritance but interface support this.
    Abstract classes can contain constructors, but the interface does not support constructors.
    MyISAM supports Table-level Locking, but InnoDB supports Row-level Locking
    MyISAM designed for the need of speed but InnoDB designed for maximum performance when processing a high volume
    of data
    MyISAM does not support foreign keys, but InnoDB support foreign keys
    MyISAM supports full-text search, but InnoDB does not support this
    MyISAM does not support the transaction, but InnoDB supports transaction
    You cannot commit and rollback with MyISAM, but You can determine and rollback with InnoDB
    MyISAM stores its data, tables, and indexes in disk space using separate three different files, but InnoDB stores its indexes
    and tables in a tablespace

  11. What is the difference between Apache and Tomcat?
    Both used to deploy your Java Servlets and JSPs. Apache is an HTTP Server, serving HTTP. Tomcat is a Servlet and JSP Server
    serving Java technologies.

  12. What is the best way to avoid email sent through PHP getting into the spam folder?

  13. What is PEAR in PHP?
    It stands for PHP Extension and Application Repository. It is that the next revolution in PHP. It is used to install packages

  14. What is the difference between REST and Soap?

  15. How to make database connection in PHP?
    Sending mail using the PHP mail function with minimum parameters we tend to should use headers like MIME-version,
    Content-type, reply address, from address, etc. to avoid this case
    Did not use correct SMTP mail script like PHPmailer.
    Should not use website link in mail content.
    SOAP represent for Simple Object Access Protocol, and REST stands for Representation State Transfer.
    SOAP is a protocol and Rest is an architectural style.
    SOAP permits XML data format only but REST permits different data format such as Plain text, HTML, XML, JSON, etc
    SOAP requires more bandwidth and resource than REST so avoid to use SOAP where bandwidth is minimal.

$servername = “your hostname”;
$username = “your database username”;
$password = “your database password”;
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die(“Not Connected: ” . $conn->connect_error);
echo “Connected”;

%d bloggers like this: