Object Oriented Programming (OOP): PHP is Object Oriented Programming Language that supports various concepts—classes, Objects, Constructors, Inheritance, etc.
Do you think IIT Guwahati certified course can help you in your career?
No
Introduction
In this blog, we will be doing a quick reading of the concepts of PHP, such as what is PHP, Why to use PHP, Variables, Data Types, Operators, Functions, OOPS concepts, and so on. This blog will help you understand Important PHP concepts, and you will learn PHP programming language.
What is PHP?
PHP stands for Hypertext Preprocessor. It is a dynamically interpreted scripting language for building interactive websites on the server. It was created in 1994 by a Danish-Canadian programmer called Rasmus Lerdorf. Despite this language's age, it is one of the most popular languages. PHP is famous for back-end web development.
PHP predated javascript and was one of the languages embedded directly in HTML to make a dynamic website. The Interpreter is implemented in C and has a Syntax inspired by Perl.
Why Learn PHP?
Easy to Understand: The syntax is simple and easy to understand for beginners.
Faster Execution: The Execution time of PHP is more immediate while executing the web pages.
Cross-Platform: PHP is a cross-platform language which means a PHP website can run on various Operating Systems. Windows, Linux, and MacOS.
Popularity and Resources: There is a very vast community of developers for PHP. This is one of the essential factors for a beginner as users can get any help, solution, or tutorial on the Internet.
Scalability: PHP supports good performance meaning PHP can handle large amounts of traffic.
Features of PHP
Open Source
Open Source is a project that is free to use, modify, or contribute to. Thus, PHP is one of them.
Integration with Databases
There are Database Extensions such as MySQLi or PDO. Users can connect PHP code to these extensions to execute queries and retrieve results. The queries can be directly added to the PHP script.
Server-Side Scripting
PHP is the world’s most popular server-side scripting language. It needs a server to run a code. Typically users don’t have to create an external server as PHP makes its server (such as Apache or Nginx) that can be used for testing and development purposes.
Object Oriented Programming (OOP): PHP is Object Oriented Programming Language that supports various concepts—classes, Objects, Constructors, Inheritance, etc.
Interpreted Language: PHP is an interpreted language, meaning code executes line by line (or runtime). So there is no need for compiling.
Security: Security is one of the most crucial factors nowadays; PHP has built-in features that protect against SQL injection attacks, cross-site scripting (XSS), and other vulnerabilities.
Error Detection: Error can be reported using predefined constants such as ‘E_ERROR’ and ‘E_WARNING‘ that generate an error notification or warning.
Loosely-Typed Language: There is no need to write the data type while declaring variables in PHP. PHP takes care of it automatically at the time of execution.
Sample “Hello World” Program in PHP
php
php
<!DOCTYPE html> <html> <body> <h1>Code to print Hello World for Ninjas</h1> <?php echo "Hello World"; ?> </body> </html>
You can also try this code with Online PHP Compiler
Easy to Learn: The PHP syntax is simple and easy for beginners to understand. If a beginner can realize HTML and then PHP is easy to learn.
Free of Cost: PHP is an open-source language that is free of cost to use and modify. Anyone who wishes to learn or contribute can do without paying anything.
Flexible: PHP is a server-side scripting language that provides server-meaning operations. Integration with the Database, Receiving Cookies, and Receiving Data from forms is easy.
Supports nearly all databases: PHP supports many open-source and proprietary databases. Some examples include MySQL, MariaDB, PostgreSQL, SQLite, Oracle, etc.
Secured: PHP provides some security features to protect applications—for example, Data validation, sanitization, Session Management, Cross-site scripting, etc
Strong Community Support: PHP is the old language meaning there is a large community to help each other. So even a beginner can get help anywhere the user gets stuck.
Version History of PHP
PHP was created in 1994, and PHP evolved a lot in terms of features, performance, and security. Mainly, There are a total of 7 versions as of now following:
PHP1: PHP1 was released in 1995 by Rasmus Lerdorf. It was a script written in the C programming language.
PHP2: PHP2 was released in 1997. In 1997, support for web pages to make it dynamic and support for databases was introduced.
PHP3: PHP3 was released in 1998. support for Object-Oriented Programming and support for MySQL was introduced.
PHP4: PHP4 was released in 2000. some performance improvements were done and support for sessions and the GD graphics library were introduced.
PHP5: PHP5 was released in 2004. some improvements were made including support for Object-Oriented Programming, XML Processing, and so on.
PHP7: PHP7 was released in 2015. some performance improvements were made and new features were added such as scalar type declarations, return type declarations, and anonymous classes.
PHP8: PHP8 was released in 2020. some performance enhancements and new features such as unions, named arguments, and attributes were introduced.
PHP Variables
Variables are a type of memory where data can be stored and accessed. A $ sign is used to declare the variable followed by its name. The values in the variable can be assigned using an assignment operator (=).
Variables support different data types, including int, float, char, string, boolean, etc. But there is no need to declare a data type of the variable as PHP is Loosely-Typed Language. Also, PHP variables are case-sensitive. So, upper-case and lower-case names will treat as different variables.
Variables can only contain the alpha-numeric characters and underscore and can not contain spaces.
Four types of scopes in PHP:
1. Global Variables
These are the types of variables that are accessible anywhere in the script. Variables declared outside of the function have global scope.
2. Local Variables
These variables are only accessible within the function where they are declared.
3. Static Variables
The variable’s values retain themselves between function calls. The scope of these variables is Local, but the value preserves between the calls.
4. Super Global Variables
These are the predefined variables that are accessible from anywhere in the script.
Data Types is a keyword that specifies the data type the variable will store. Even though users don't have to specify the data type, type-casting has a feature that converts one type of data to another. Here’s a table of all the data types in PHP with their description:
Data Type
Description
Syntax
Integers
Whole Numbers such as 1, 9, -5, 0, etc.
$ninja_int = 10;
Floats
Numbers with a decimal point, such as 8.4, 1.9, and -9.2, etc.
$ninja_float = 9.45;
Strings
The Sequence of Characters such as “Coding Ninjas”, “Coding Ninjas Studio”, etc.
$ninja_str = "Coding Ninjas !";
Booleans
Values that are either true or false
$ninja_bool = true;
Arrays
Collection of values that can be numerical or string.
Operators are symbols used for mathematical and logical actions. Operators are used to performing operations on variables and values in PHP.
The list of all the operators is as follows:
Arithmetic Operators
These operators perform mathematical operations on variables and values. Operations such as addition(+), multiplication(*), subtraction(-), etc. can be performed.
Comparison Operators
These Operators are used to compare two variables or values and return boolean values, true or false. Examples can be equal to (==), not equal to (!=), less than(<), greater than(>), etc.
Bitwise Operators
These Operators are used to manipulate binary data. Examples are, Bitwise AND(&), Bitwise OR(|), Bitwise XOR(^), Bitwise NOT(~), etc.
Logical Operators
These Operators are used to perform logical operations on boolean values. Examples are Logical AND(&&), Logical OR(||), Logical NOT(!).
Assignment Operators
These Operators are used to assign values to the variables. Some of the examples can be simple assignment(=), add and assign(+=), subtract and assign(-=), etc.
Incrementing/ Decrementing Operators
These Operators are used to increment or decrement the value of a variable. Examples are Increment (++) and Decrement (--).
String Operators
These Operators are used to concatenate the strings. An example of String Operators is a dot (.).
Array Operators
These Operators are used to perform operations on arrays. A typical example of this type of operator is the + operator, which merges the two given arrays.
Error Operators
These are the special operators introduced in PHP that allow users to handle errors. Common examples are error_reporting, display_errors, error_log, etc.
Execution Operators
These Operators are used to run external programs or shell commands from the PHP script. Two execution operators are Backticks(`) and Shell_exec().
Conditional Assignment Operators
These Operators are used to assign the values in a variable based on a condition. Examples can be the Ternary Operator (?) and Null coalescing operator (??).
Functions are the block of code that executes whenever a user calls that block of code (or function). Functions can accept arguments and return a value.
Functions are used to perform a specific operation. Functions are generally used when that particular operation needs to be called multiple times; It is beneficial to use Functions instead of writing a specific operation's code multiple times.
Syntax:
function function_name(argument1, argument2,..., argument n) {
return value;
}
Two types of functions in PHP:
User-Defined Functions
These functions are defined by users for specific tasks or operations. Users can give any name to the function and pass any input arguments to it. Here is an example of user-defined functions:
function callNinja($name) {
echo "Good Morning, $name!";
}
greet("Ninja");
Output: Good Morning, Ninja!
Built-In Functions
These functions are pre-defined by PHP and available to use in PHP script or program. Here is an example of user-defined functions:
$len = strlen(“Hey, Ninja!”) // strlen is a built-in function
// $len will be 11
Two types of arguments in PHP:
Function Arguments
These are the values that are passed by the user when the function is called. Here, Arguments can have single or multiple values. Here’s an example:
function addNinjas($ninja1, $ninja2) {
return ninja1 + ninja2;
}
$result = addNinjas(2, 5); // result will be 7
// Here, ninja1 and ninja2 are the arguments for the function.
Default Arguments
When a function has no arguments (or no values) called, it is known as a default argument. When a user doesn’t pass a value in a function call, There will be a default value defined in the function will be taken as an argument. Here’s an example:
function getNinja($ninja = "Ninja") {
echo $ninja;
}
getNinja();
// Here, Ninja is a default value in the function.
Call by Reference
This method passes a variable so when a user changes the value within the function. The value of this variable gets changed in the original variable in the PHP script. Symbol ‘$’ represents that the variable is passed as a reference to the function. Here’s an example:
$ninja = 5;
function getNinja(&$ninja) {
$ninja = $ninja + 10;
}
// The value of $ninja is 5 here.
getNinja($ninja);
// The value of $ninja is 15 here.
Return Values
These are the values that can be returned back to the code where the function is called. Return values can be returned by specifying the keyword ‘return’.
Here are some types of values that can be returned from the function: int, float, string, arrays, objects, functions, etc. Here’s an example:
function addNinjas($ninja1, $ninja2) {
return ninja1 + ninja2; // this is the return line.
}
$result = addNinjas(2, 5); // result will be 5
PHP vs JavaScript
PHP and JavaScript are the popular scripting languages in the web development domain. Both languages share some similarities and have different use cases and strengths. Look at a table to understand the differences in detail:
Factors
PHP
JavaScript
Availability
PHP is a server-side language that is generally installed on web servers.
JavaScript is a client-side language that runs on web browsers.
Concurrency
PHP lacks good support for concurrency; Only multi-threading can be used on a server level.
JavaScript has good support for concurrency, Asynchronous Programming, and an event loop mechanism is provided.
Integration with External Code
PHP has good support for integration, and PHP has strong integration with databases such as MySQL
JavaScript has some extensive libraries for good integration, and Axios and Fetch are the libraries for API services.
Runtime Environment
PHP performs execution on web servers such as Apache or Nginx as a server-side language.
JavaScript runs on web browsers as JavaScript is a client-side language.
Ease
PHP is easier for beginners due to its simple syntax.
JavaScript has a more complex syntax. It has some frameworks and libraries which is not easier for beginners to learn.
OOP in PHP
OOP stands for Object-Oriented Programming. OOPs is a programming paradigm in PHP. Developers can organize their code by using OOP concepts. OOP makes the code or script more reusable and more readable.
Here are some benefits of OOPs:
Code Organization: Objects can be created using OOPS. In OOPS, Users can group similar functions in classes that make the code easier to read and understand.
Maintainability: As the OOPs make the code more readable, maintaining the code will also get easier. Every similar function groups, so Finding Mistakes, Debugging the code gets easier.
Scalability: Adding new features or functionalities to the code gets more accessible, improving the scalability. In OOPs, Classes can be easily extended or modified. So Adding new features to the code without modifying the existing code.
Some Important Terms in OOPs:
Classes: It can be considered a block or structure that defines the properties and methods. In PHP, classes can be defined by the keyword ‘class’.
Objects: It is an instance of a class with its properties and methods. In PHP, objects can be defined by the keyword ‘new’.
Properties: Properties are the variables that contain the data for an object. Now these properties can be defined by ‘private’, ‘public’, or ‘protected’ keywords.
Methods: Methods are the functions that define the behavior of an object. Methods can be defined by the keyword ‘function’.
Abstraction: Abstraction means the hiding of data. Meaning developers can use the pre-defined block of code freely, but the implementation is hidden. The use of abstract classes and interfaces is done to achieve abstraction.
Encapsulation:Encapsulation separates the properties and methods from the code outside of that class. Encapsulation can be achieved using access modifiers such as ‘private’, ‘public’, or ‘protected’ keywords.
Polymorphism: Polymorphism is the ability for the objects of different classes to be used interchangeably. By using method overriding or interfaces polymorphism can be achieved.
Inheritance: Inheritance is the ability of the sub-class to inherit some properties or methods from a base or parent class. Inheritance can be done by using the keyword ‘extends’.
Form Handling in PHP
In web development, Creating a form is one of the most used functionalities of almost all websites. Forms can be used as a contact form, sign-up, or login page. PHP provides some built-in features and functions to make it easier to work with forms.
More than passing the data in the form is required, Developer needs to store the data in a database, or the Data should be processed so that specific tasks can be performed.
Form Handling Steps are the following:
When the user submits the form by inputting the data, This data is sent to the server as an HTTP POST or GET request, depending on the specified ‘method’ attribute in the form.
PHP Form Handler script processes the data submitted by the user and performs an action on it. Actions can be storing the data in the database, emailing, etc.
Feedback is provided to the user, It can be an error message or a confirmation message.
File Handling in PHP
File Handling in PHP refers to reading, writing, and manipulating files using a PHP script (or code). PHP provides in-built libraries for opening, closing, reading, writing, etc.
Here are some operations that can be done on files:
Reading a file: This involves reading a file. Every line in the file can be read using PHP pre-defined functions. Here’s an example:
$ninja_file = fopen("ninjas.txt", "r") or die("Unable to open ninjas file!");
while(!feof($ninja_file)) {
echo fgets($ninja_file). "<br>";
}
fclose($ninja_file);
/*
fopen is a method to open a file if it's present or else die will be called.
Here ‘ninjas.txt’ is a file name and ‘r’ defines read which shows that the user wants to read the file.
Now a while loop runs until it reaches the end of the file, echo is written to print the output of each line of the file. ‘fgets’ method is called to get each line.
Lastly, ‘fclose’ is the method to close the file.
*/
Writing a file: This involves writing a file, PHP provides pre-defined methods that can be used to write into a file. Here’s an example:
$ninja_file = fopen("ninja.txt", "w") or die("Unable to open file!");
fwrite($ninja_file, "Hello Ninja!\n");
fclose($ninja_file);
/*
Fopen is a method to open a file if it’s present or else die will be called.
Here ‘ninja.txt’ is a text file, where the content is to be written.
‘w’ defines write which shows that the user wants to write to the file.
‘fwrite’ is a method that can be used to write the data in the file.
Lastly, ‘fclose’ is the method to close the file.
*/
Uploading a file: Users can upload files from their local computer to the web server for processing or any other specific task. Here an example is taken to uploading the file to the local computer’s target file:
if(isset($_FILES['file'])) {
// directory to which file is to be uploaded
$target_ninja_dir = "uploads/";
// new created file to upload
$target_ninja_file = $target_ninja_dir . basename($_FILES["file"]["name"]);
// checks if the file already exists
if (file_exists($target_ninja_file))
echo "Sorry Ninja, file already exists.";
else {
// uploads file
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_ninja_file))
echo "The file ". basename( $_FILES["file"]["name"]). " has been uploaded.";
else
echo "Sorry Ninja, An Error Found.";
}
}
PHP Sessions
Sessions are a way to store and share the user’s data across the different pages on the website. In PHP, scripts can be written to access or modify the session data on the running server.
Sessions are used to maintain the data and state of the user, such as personal information or course cart contents.
Now let’s see how to work with the PHP sessions:
Start a session: PHP provides a pre-defined method called ‘session_start()’ that can be specified at the beginning of each script that needs access to session data. This method initializes a new or existing session and generates a unique ID that can be used to identify the particular session data.
Syntax:
<?php
session_start();
?>
Set session variables: After initializing the session, session variables can store the data using a pre-defined superglobal ‘$_SESSION’. To set a session variable, this superglobal is specified to the variable.
Unsetting and destroying session: Whenever a user closes the browser, the session data needs to be destroyed to prevent privacy and security. To unset the session variable, the ‘unset()’ method can be used. To destroy the session and the data, the ‘session_destroy()’ method can be used.
When a function is passed as an argument to another function or assigned to a variable, it is called a callback function. PHP also provides this function for better flexibility and modularity. This is one of the features that is being used nowadays to reduce the complexities.
Several types of callback functions in PHP are the following:
Simple Callback: These are the callback functions that can be passed as an argument to another function. Here’s an example:
<?php
function addNinjas($ninja1, $ninja2, $callback) {
$callback($ninja1 + $ninja2);
}
function myNinjaCallback($ninja_result) {
echo "Ninja Result is: " . $ninja_result;
}
addNinjas(2, 3, 'myNinjaCallback');
?>
Output:
Ninja Result is: 5
Static class method call: These are the callbacks that reference a static method of the class. Here’s an example:
<?php
class Ninja {
public static function multiplyNinjas($ninja1, $ninja2, $callback) {
$callback($ninja1 * $ninja2);
}
}
function myCallback($ninja_result) {
echo "Ninja Result is: " . $ninja_result;
}
Ninja::multiplyNinjas(2, 3, 'myCallback');
?>
Output:
Ninja Result is: 6
Object method callback: These are the callbacks that reference a method of a class’s object. Here’s an example:
<?php
class Ninja {
public function addNinjas($ninja1, $ninja2, $callback) {
$callback($ninja1 + $ninja2);
}
}
class MyNinjaCallback {
public function printNinjaResult($ninja_result) {
echo "Ninja result is: " . $ninja_result;
}
}
$math = new Ninja();
$callback = new MyNinjaCallback();
$math->addNinjas(2, 3, array($callback, 'printNinjaResult'));
?>
Output:
Ninja result is: 5
Callback using closure: These are the callbacks that are defined as an anonymous function. These callbacks are typically defined as ‘function() {}’ syntax. Here’s an example:
<?php
function addNinjas($ninja1, $ninja2, $callback) {
$callback($ninja1 + $ninja2);
}
addNinjas(2, 3, function($ninja_result) {
echo "Ninja result is: " . $ninja_result;
});
?>
Output:
Ninja result is: 5
PHP Exceptions
An Exception is an event that occurs when errors or exceptional events happen. PHP provides a way to handle these errors. When an error occurs, an exception is thrown, and PHP runtime looks for the catch block to handle the exception.
Here are some crucial keywords in PHP exception handling:
try: ‘try’ block of code that may throw an exception.
catch: ‘catch’ block of code handling the exception.
throw: ‘throw’ keyword can be used to throw an exception.
finally: ‘finally’ block of code that always executes after the ‘try’ and ‘catch’ even whether the exception is thrown or not.
PHP Exception Object: A PHP exception object is an instance of the ‘Exception’ class. It has all the information about the exception, such as the message, code, file, etc.
Different PHP Exception Methods
Method
Description
getMessage()
Returns the message of the encountered exception
getPrevious()
Returns the previous exception with all other exceptions
getCode()
Returns the code of the encountered exception
getFile()
Returns the name of the file in which the exception occurred
getLine()
Return the line number where the exception occurred
Applications of PHP
Web Development
PHP helps developers to build dynamic websites and web applications. PHP can use for creating web pages that include Integration with Databases, File Handling, and Form Handling. PHP also provides advanced functionalities such as Authentication, Authorization, and Session Management.
Social Media Platforms
Famous Companies like Facebook, Twitter, and LinkedIn still use PHP for backend development and database management.
Web Services
PHP can also be used to build web services for other applications. Examples of these web services are RESTful APIs and SOAP services.
E-Commerce Platforms
PHP has revolutionized the E-Commerce Platforms used in building applications such as Online Stores and Payment Gateways. WooCommerce and PrestaShop are two examples of PHP E-Commerce solutions.
Limitations of PHP
Security Issues: PHP is open-source, meaning the codebase of PHP is visible to everyone. So this is an easy target for hackers and cyber attacks. PHP Developers need to make sure their PHP code is safe.
Poor Performance: PHP is an old scripting language that performs poorly when large-scale applications are written in PHP.
Loosely Type Language: PHP Variables are not strictly enforced. This can lead to bugs in the code sometimes.
Advantages of PHP
Easy to Understand: PHP has a simple syntax, which is easy for beginners to understand. Developers who wish to change their tech stack can adapt to PHP in significantly less time.
Faster Execution: PHP is a server-side language meaning the execution time of PHP is more immediate while executing the web pages
Cross-Platform: PHP is a cross-platform language, meaning a PHP website can run on various Operating Systems. Windows, Linux, and MacOS.
Resources: There is a very vast community of developers for PHP. It is one of the crucial factors for a beginner as users can get any help or solution on the Internet.
Disadvantages of PHP
Problems with Naming Conventions: Naming Conventions in PHP are inconsistent, which can be difficult to read and understand by beginners especially.
No advanced concurrency services: PHP has only the concept of multi-threading to handle multiple requests, while other languages have more advanced features to handle it.
Limited Scalability: PHP can be used for large-scale applications, but it can be difficult to handle high traffic loads on applications.
Frequently Asked Questions
What does PHP stand for?
PHP stands for Hypertext Preprocessor.
What PHP is used for?
PHP is a dynamically interpreted scripting language for building interactive websites on the server. PHP can be used for creating E-Commerce, Social Media, and Gaming Applications.
What is PHP?
PHP stands for Hypertext Preprocessor. It is a dynamically interpreted scripting language for building interactive websites on the server. It was created in 1994 by programmer Rasmus Lerdorf. PHP is famous for back-end web development.
What is PHP vs HTML?
PHP stands for Hypertext Preprocessor. PHP is the server-side scripting language used to make websites interactive and dynamic. PHP is used for back-end development. PHP is embedded in HTML.
HTML stands for Hypertext Markup Language. HTML is used to create the structure (or skeleton) of web pages. The web browser interprets HTML pages. HTML shows the web page that the user can view.
Conclusion
This article teaches basic to advanced topics starting from Variables, Data Types, Operators, Functions, and OOP to Form and File Handling, Sessions, and Exceptions. We also saw how important it is to learn PHP programming language for developers.
We hope that everyone understands the concepts and syntax of PHP.