Loading…
core php interview questions

An Overview of PHP

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 or PHP frameworks. We have just added more questions in our question bank for PHP interview questions and answers for experienced.

Development History of PHP:

Rasmus Lerdorf created PHP in 1994 and installed on more than 240 million websites and 2.1 million servers in 2013. A lot of interviewees have asked about this in PHP logical interview questions and PHP technical interview questions for experienced developers.

Key points about PHP:

  • It runs on various platforms, including Windows, Mac OS X, Linux, Unix, etc.
  • It is compatible with almost all servers, including Apache and IIS.
  • It supports many databases like MySQL, MongoDB, etc
  • It is free, easy to learn and runs on the server side.
  • PHP can operate various file operations on the server

Here are some of the essential PHP logical interview questions and answers that will support you in learning the PHP language basics.

Latest Recommended Version:

Version 7.1 is the latest recommended version.

CMS vs Framework PHP

PHP supports various frameworks and CMS that are used to develop applications.

CMS in PHP is built with the website manager in mind. All CMS makes it very simple to manage the website content. The business owner can change information on the website without a problem. CMS like WordPress, Drupal, Drupal, Joomla, Magento, etc

If you are preparing for PHP interviews, you can read PHP7 interview questions for clarity and insight.

The framework in PHP usually does not have the default standard user interfaces, which makes CMS so user-friendly. In the framework, developers can create an interface using the available library methods. CSS frameworks like SASS or Bootstrap can be used with PHP frameworks to develop a site for the best user experience. Developers can develop responsive sites using these front end frameworks. Frameworks like Laravel, CakePHP, CodeIgniter, YII, etc

Our biggest and updated question bank for Advanced PHP interview questions are one of the biggest question bank available online.

Advantages of PHP

  • Open source
  • Robust functions
  • Centralized built-in database
  • Extensive community support

Disadvantages of PHP

  • Not very secure
  • Unable to manage a large number of apps
  • Unexpected bugs may appear

If you are looking for an opportunity to move ahead in your career as a PHP developer or if you are looking for PHP interview questions and answers for experienced that can help you crack your interview.

php interview questions and answers

Looking for a new job? Do not miss to read our php interview questions and answers. Whether you are a fresher or an experienced, these questions and answers that can help you to crack your interview.

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

  • Open source
  • Robust functions
  • Centralized built-in database
  • Extensive community support

PHP was developed by Rasmus Lerdorf in 1994.

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

Primarily PHP supports four types of errors, listed below:-

  • Syntax Error
  • Fatal Error
  • Warning Error
  • Notice Error

1. Syntax Error: It will occur if there is a syntax mistake in the script

2. 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.

3. Warning Error: It will occur in following cases to include a missing file or using the incorrect number of parameters in a function.

4. Notice Error: It will happen when we try to access the undefined variable.

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.

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.

Example

                                                

function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

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.

These both methods are based on the HTTP method.

GET POST
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: https://www.bestinterviewquestion.com/index.html?name1=value1&name2=value2

We have listed some of the PHP developer interview questions and answers for experienced as well as for freshers.

With the help of define(), we can make constants in PHP.

Example

                                                

define('DB_NAME', 'bestInterviewQ')

In PHP array() are the beneficial and essential thing. It allows to access and manipulate with array elements.

 

List of array() functions in PHP

  • array()
  • count()
  • array_flip()
  • array_key_exists()
  • array_merge()
  • array_pop()
  • array_push()
  • array_unique()
  • implode()
  • explode()
  • in_array()

PHP has lots of string function that helps in development. Here are some PHP string functions.

 

  • nl2br()
  • trim()
  • str_replace()
  • str_word_count()
  • strlen()
  • strpos()
  • strstr()
  • strtolower()
  • strtoupper()

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.

Example

                                                

$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;
    }
}

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.

Example

                                                


session_start();
//session variable
$_SESSION['user'] = 'BestInterviewQuestion.com';
//destroyed the entire sessions
session_destroy();
//Destroyed the session variable "user".
unset($_SESSION['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
setcookie($cookie_uname,"",-3600);

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 :

header(string,replace,http_response_code);

1. string: It is the required parameters. It specifies the header string to send.

2. replace: It is optional. It indicates whether the header should replace previous or add a second header.

3. http_response_code : It is optional. It forces the HTTP response code to the specified value

PHP has multiple functions to handle files operations like read, write, create or delete a file or file contents.

1. 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.

2. file_get_contents(): It is used to read the contents of a text file.

file_get_contents($filename);

With the heal of the header(), we can redirect from one page to another in PHP.

Syntax :

header('location:index.php');

HTML forms provide three methods of encoding.

  • application/x-www-form-urlencoded (the default)
  • multipart/form-data
  • text/plain

multipart/form-data

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.

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.

In PHP comments are two types.

  1. Single line comments
  2. Multi line comments

1. 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.

2. 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.

1. 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);
print_r($new_array);

OUTPUT : Array([key1]  => umesh[key2]    => sonu[key2]    =>deepak)

2. 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); 
print_r($result);
Array ( [one] => php [two] => sql [three] => html [four] => Me )

We can use the count() or size() function to get the number of elements or values in an array in PHP.

Example

                                                

$element = array("sunday","monday","tuesday");
echo count($element );

echo sizeof($element );

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 class.

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);

OUTPUT

1-2-3-4-5

 

$array2 = "My name is umesh";

$a = explode(" ",$array2 );

print_r ($a);

OUTPUT

$a = Array ("My", "name", "is", "umesh");

 

 

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 server-side 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.

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.

Example

                                                

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);

 

These both are PHP inbuilt function which is used to open & close a file which is pointed file pointer.

S.no fopen() fclose()
1. 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.
2. $myfile = fopen("index.php", "r") or die("Unable to open file!"); $myfile = fopen("index.php", "r");

There are differences between php5 and php7.

  • 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

 

On our website you will find industy's best PHP interview questions for 5 year experience.

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 INCREMENT

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.

strip_tags(string,allow)

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

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");

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 optional

echo substr("Hello world",6);

It will return first six characters from a given string.

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.

Example:

$var_name1=12; int(12);

It is used to inserts HTML line breaks ( <br /> or <br /> ) in front of each newline (\n) in a string.

$$var is known as reference variable where $var is a normal variable.

1. 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.

2. 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)

1. mysql_fetch_object: It returns the result from the database as objects. In this field can be accessed as $result->name

2. mysql_fetch_array: It returns result as an array. In this field can be accessed as $result->[name]

Constructor and a Destructor both are special functions which are automatically called when an object is created and destroyed.

Example

                                                
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;

 

$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

For including a file into another PHP file we can use various function like include(), include_once(), require(), require_once().

Example

                                                

<?php require('footer.php') ?>

 

The items of an array can be sorted by various methods.

  • 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

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.

error_reporting(E_ALL);
ini_set('display_errors', '1');

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:-

  • __construct()
  • __destruct()
  • __call()
  • __get()
  • __unset()
  • __autoload()
  • __set()
  • __isset()

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.

Example

                                                

trait HelloWorld
{
     use Hello, World;
}

class MyWorld
{
     use HelloWorld;
}

$world = new MyWorld();
echo $world->sayHello() . " " . $world->sayWorld(); //Hello World

Inheritance has three types, are given below.

  • Single inheritance
  • Multiple inheritance
  • Multilevel inheritance

 

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.

 

We can do it by various methods, If you have allow_url_fopen set to true:

  • We can download images or files from an external server  with cURL() But in this case, curl has been enabled on both servers
  • We can also do it by file_put_contents()

Example

                                                

$ch = curl_init();
$source = "http://abc.com/logo.jpg";
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);
fclose($file);

/*-------This is another way to do it-------*/

$url = 'http://abc.com/logo.jpg';
$img = '/images/flower.jpg';
file_put_contents($img, file_get_contents($url));

  • InnoDB
  • CSV
  • MEMORY
  • ARCHIVE
  • MyISAM

With PHP 5.6+ "InnoDB" is treated by default database storage engine. Before that MyISAM defaulted storage engine.

These all are PHP Operators.

= is used to assign value in variables. It is also called assignments 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.

We can define a class with keyword "class" followed by the name of the class.

 

Example :

class phpClass {
    public function test() {
       echo 'Test';
    }
}

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.

Example

                                                

class childClassname extends parentClassname {
    protected $numPages;

    public function __construct($autor, $pages) {
       $this->_autor = $autor;
       $this->numPages = $pages;
    }

    final public function PageCount() {
       return $this->numPages;
    }
}

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.

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

COUNT(*) is used to count the number of rows in the table.

SELECT COUNT(*) FROM BestPageTable;

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

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 https://getcomposer.org/download

It is used to get the name and path of current page/file.

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

Namespace allows us to use the same function or class name in different parts of the same program without causing a name collision.

Example

                                                

Namespace MyAPP;
   function output() {
   echo 'IOS!';
}

namespace MyNeWAPP;
   function output(){
   echo 'RSS!';
}

With the help of $_SERVER['HTTP_USER_AGENT']

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.

Example

                                                

Using cURL function module to fetch the abc.in homepage

$ch = curl_init("https://www.bestinterviewquestion.com/");
$fp = fopen("index.php", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

$num = 12345;
$revnum = 0;
while ($num > 1)
{
$rem = $num % 10;
$revnum = ($revnum * 10) + $rem;
$num = ($num / 10);
}

echo "Reverse number of 12345 is: $revnum";

Example

                                                

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";

else

    echo 'It is Prime Number..'."\n";

Example

                                                

function getTableOfGivenNumber($number) {

   for($i=1 ; $i<=10 ; $i++) {

       echo $i*$number;

   }

}

getTableOfGivenNumber(5);

Many differences occur between the interface and abstract class in php.

 

  • 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.

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().

There are lots of differences between both storage engines. Some are given below:-

 

  • 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

 

This is a good question concerning PHP programming interview questions and answers for freshers.

Place this code in your htaccess file.

RewriteEngine On

RewriteCond %{HTTPS} on

RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

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.

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.

  • 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.

It stands for PHP Extension and Application Repository. It is that the next revolution in PHP. It is used to install packages automatically.

  • 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.

Example

                                                

$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";

More Relevant Interview Questions & Answers

Stay updated with the coming world

Oops Interview Questions and Answers in Php, C++,...

More

Laravel is a free and open-source PHP framework...

More

WordPress the most popular content management system (CMS)...

More

Yii is a component-based, high-performance PHP framework for...

More

Drupal is an open source PHP content-management framework...

More

Joomla is a free content management system (CMS)...

More

CakePHP is a modern, open-source PHP 7 framework...

More

CodeIgniter is a PHP open-source web development framework...

More

Yii 2.0 is a component-based and high-performance PHP...

More

Laravel 5 is robust and follows the MVC...

More

Licensed under the New BSD License, Zend Framework...

More

Zend Framework 2 Interview Questions and Answers for...

More

Symfony is one of the most widely used...

More

Magento is an open-source PHP e-commerce platform. Magento...

More

An open source and PHP-based, OpenCart is an...

More

PHP Arrays are the most important feature in...

More

PHP earlier stood for Personal Home Pages, but...

More

React Interview Questions - React Interview Questions and...

More

JavaScript is a high-level programming language that is...

More