0% found this document useful (0 votes)
142 views

Php-Note !!

PHP is an open source scripting language used to build dynamic websites. PHP code is executed on the server and generates HTML that is sent to the browser. PHP can be used to collect form data, generate dynamic page content, create, open, read, write, delete, and close files on the server, and add, delete, and modify data in databases. Variable names in PHP are case-sensitive.

Uploaded by

kandelbibek706
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
142 views

Php-Note !!

PHP is an open source scripting language used to build dynamic websites. PHP code is executed on the server and generates HTML that is sent to the browser. PHP can be used to collect form data, generate dynamic page content, create, open, read, write, delete, and close files on the server, and add, delete, and modify data in databases. Variable names in PHP are case-sensitive.

Uploaded by

kandelbibek706
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 106

NOTE: PHP

INTRO OF PHP
WHAT IS PHP?
 PHP IS AN ACRONYM FOR "PHP: HYPERTEXT PREPROCESSOR"
 PHP IS A WIDELY-USED, OPEN SOURCE SCRIPTING LANGUAGE
 PHP SCRIPTS ARE EXECUTED ON THE SERVER

PHP IS AN AMAZING AND POPULAR LANGUAGE!

IT IS POWERFUL ENOUGH TO BE AT THE CORE OF THE BIGGEST BLOGGING SYSTEM ON


THE WEB (WORDPRESS)!
IT IS DEEP ENOUGH TO RUN LARGE SOCIAL NETWORKS!
IT IS ALSO EASY ENOUGH TO BE A BEGINNER'S FIRST SERVER-SIDE LANGUAGE!

WHAT IS A PHP FILE?


 PHP FILES CAN CONTAIN TEXT, HTML, CSS, JAVASCRIPT, AND PHP CODE
 PHP CODE IS EXECUTED ON THE SERVER, AND THE RESULT IS RETURNED TO THE
BROWSER AS PLAIN HTML
 PHP FILES HAVE EXTENSION ".PHP"

WHAT CAN PHP DO?


 PHP CAN GENERATE DYNAMIC PAGE CONTENT
 PHP CAN CREATE, OPEN, READ, WRITE, DELETE, AND CLOSE FILES ON THE
SERVER
 PHP CAN COLLECT FORM DATA
 PHP CAN SEND AND RECEIVE COOKIES
 PHP CAN ADD, DELETE, MODIFY DATA IN YOUR DATABASE
 PHP CAN BE USED TO CONTROL USER-ACCESS
 PHP CAN ENCRYPT DATA

WHY PHP?
 PHP RUNS ON VARIOUS PLATFORMS (WINDOWS, LINUX, UNIX, MAC OS X, ETC.)
 PHP IS COMPATIBLE WITH ALMOST ALL SERVERS USED TODAY (APACHE, IIS,
ETC.)
 PHP SUPPORTS A WIDE RANGE OF DATABASES
 PHP IS EASY TO LEARN AND RUNS EFFICIENTLY ON THE SERVER SIDE
PHP SYNTAX
A PHP SCRIPT IS EXECUTED ON THE SERVER, AND THE PLAIN HTML RESULT IS SENT BACK
TO THE BROWSER.

BASIC PHP SYNTAX


A PHP SCRIPT CAN BE PLACED ANYWHERE IN THE DOCUMENT.

A PHP SCRIPT STARTS WITH "<?PHP" AND ENDS WITH "?>":

<?php

// php code goes here

?>

THE DEFAULT FILE EXTENSION FOR PHP FILES IS ".PHP".

A PHP FILE NORMALLY CONTAINS HTML TAGS, AND SOME PHP SCRIPTING CODE.

BELOW, WE HAVE AN EXAMPLE OF A SIMPLE PHP FILE, WITH A PHP SCRIPT THAT USES
A BUILT-IN PHP FUNCTION "echo" TO OUTPUT THE TEXT "HELLO WORLD!" ON A WEB

PAGE:

EXAMPLE
A SIMPLE .PHP FILE WITH BOTH HTML CODE AND PHP CODE:

<!DOCTYPE html>

<html>

<body>

<h1>My first PHP page</h1>

<?php

echo "Hello World!";

?>

</body>

</html>

NOTE: PHP STATEMENTS END WITH A SEMICOLON (;).


PHP CASE SENSITIVITY
IN PHP, KEYWORDS (E.G. IF, ELSE, WHILE, ECHO, ETC.), CLASSES, FUNCTIONS, AND
USER-DEFINED FUNCTIONS ARE NOT CASE-SENSITIVE.

IN THE EXAMPLE BELOW, ALL THREE ECHO STATEMENTS BELOW ARE EQUAL AND
LEGAL:

EXAMPLE
ECHO IS THE SAME AS echo:
<!DOCTYPE html>

<html>

<body>

<?php

ECHO "Hello World! <br>";

echo "Hello World! <br>";

EcHo "Hello World! <br>";

?>

</body>

</html>

NOTE: HOWEVER; ALL VARIABLE NAMES ARE CASE-SENSITIVE!

LOOK AT THE EXAMPLE BELOW; ONLY THE FIRST STATEMENT WILL DISPLAY THE VALUE
OF THE $color VARIABLE! THIS IS BECAUSE $color, $COLOR, AND $coLOR ARE
TREATED AS THREE DIFFERENT VARIABLES:

EXAMPLE
$COLOR IS NOT SAME AS $color:
<!DOCTYPE html>

<html>

<body>

<?php

$color = "red";

echo "My car is " . $color . "<br>";

echo "My house is " . $COLOR . "<br>";

echo "My boat is " . $coLOR . "<br>";

?>

</body>

</html>

PHP COMMENTS
A COMMENT IN PHP CODE IS A LINE THAT IS NOT EXECUTED AS A PART OF THE
PROGRAM. ITS ONLY PURPOSE IS TO BE READ BY SOMEONE WHO IS LOOKING AT THE
CODE.

COMMENTS CAN BE USED TO:

 LET OTHERS UNDERSTAND YOUR CODE


 REMIND YOURSELF OF WHAT YOU DID - MOST PROGRAMMERS HAVE
EXPERIENCED COMING BACK TO THEIR OWN WORK A YEAR OR TWO LATER AND
HAVING TO RE-FIGURE OUT WHAT THEY DID. COMMENTS CAN REMIND YOU OF WHAT
YOU WERE THINKING WHEN YOU WROTE THE CODE
 LEAVE OUT SOME PARTS OF YOUR CODE

PHP SUPPORTS SEVERAL WAYS OF COMMENTING:

EXAMPLE
SYNTAX FOR COMMENTS IN PHP CODE:

// This is a single-line comment

# This is also a single-line comment

/* This is a

multi-line comment */
SINGLE LINE COMMENTS
SINGLE LINE COMMENTS START WITH //.

ANY TEXT BETWEEN // AND THE END OF THE LINE WILL BE IGNORED (WILL NOT BE
EXECUTED).

YOU CAN ALSO USE # FOR SINGLE LINE COMMENTS, BUT IN THIS TUTORIAL WE WILL
USE //.

THE FOLLOWING EXAMPLES USES A SINGLE-LINE COMMENT AS AN EXPLANATION:

EXAMPLE
A COMMENT BEFORE THE CODE:

// OUTPUTS A WELCOME MESSAGE:

echo "Welcome Home!";

EXAMPLE
A COMMENT AT THE END OF A LINE:

echo "Welcome Home!"; // OUTPUTS A WELCOME MESSAGE

COMMENTS TO IGNORE CODE


WE CAN USE COMMENTS TO PREVENT CODE LINES FROM BEING EXECUTED:

EXAMPLE
DO NOT DISPLAY A WELCOME MESSAGE:

// echo "Welcome Home!";

MULTI-LINE COMMENTS
MULTI-LINE COMMENTS START WITH /* AND END WITH */.

ANY TEXT BETWEEN /* AND */ WILL BE IGNORED.

THE FOLLOWING EXAMPLE USES A MULTI-LINE COMMENT AS AN EXPLANATION:


EXAMPLE
MULTI-LINE COMMENT AS AN EXPLANATION:

/*

The next statement will

print a welcome message

*/

echo "Welcome Home!";

MULTI-LINE COMMENTS TO IGNORE CODE


WE CAN USE MULTI-LINE COMMENTS TO PREVENT BLOCKS OF CODE FROM BEING
EXECUTED:

EXAMPLE
MULTI-LINE COMMENT TO IGNORE CODE:

/*

echo "Welcome to my home!";

echo "its bender a e-sport player!";

*/

echo "Hello!";

COMMENTS IN THE MIDDLE OF THE CODE


THE MULTI-LINE COMMENT SYNTAX CAN ALSO BE USED TO PREVENT EXECUTION OF
PARTS INSIDE A CODE-LINE:

EXAMPLE
THE + 15 PART WILL BE IGNORED IN THE CALCULATION:
$x = 5 /* + 15 */ + 5;

echo $x;
PHP VARIABLE
VARIABLES ARE "CONTAINERS" FOR STORING INFORMATION.

CREATING (DECLARING) PHP VARIABLES


IN PHP, A VARIABLE STARTS WITH THE $ SIGN, FOLLOWED BY THE NAME OF THE
VARIABLE:

EXAMPLE
$x = 5;

$y = "Bender"

IN THE EXAMPLE ABOVE, THE VARIABLE$x WILL HOLD THE VALUE 5, AND THE
VARIABLE $y WILL HOLD THE VALUE "Bender".

NOTE: WHEN YOU ASSIGN A TEXT VALUE TO A VARIABLE, PUT QUOTES AROUND THE
VALUE.

NOTE: UNLIKE OTHER PROGRAMMING LANGUAGES, PHP HAS NO COMMAND FOR


DECLARING A VARIABLE. IT IS CREATED THE MOMENT YOU FIRST ASSIGN A VALUE TO
IT.

THINK OF VARIABLES AS CONTAINERS FOR STORING DATA.

PHP VARIABLES
A VARIABLE CAN HAVE A SHORT NAME (LIKE $x AND $y) OR A MORE DESCRIPTIVE
NAME ($age, $carname, $total_volume).

RULES FOR PHP VARIABLES:

 A VARIABLE STARTS WITH THE $ SIGN, FOLLOWED BY THE NAME OF THE


VARIABLE
 A VARIABLE NAME MUST START WITH A LETTER OR THE UNDERSCORE
CHARACTER
 A VARIABLE NAME CANNOT START WITH A NUMBER
 A VARIABLE NAME CAN ONLY CONTAIN ALPHA-NUMERIC CHARACTERS AND
UNDERSCORES (A-Z, 0-9, AND _)
 VARIABLE NAMES ARE CASE-SENSITIVE ($age AND $AGE ARE TWO DIFFERENT
VARIABLES)

REMEMBER THAT PHP VARIABLE NAMES ARE CASE-SENSITIVE!


OUTPUT VARIABLES
THE PHP echo STATEMENT IS OFTEN USED TO OUTPUT DATA TO THE SCREEN.
THE FOLLOWING EXAMPLE WILL SHOW HOW TO OUTPUT TEXT AND A VARIABLE:

EXAMPLE
$txt = "Bender";

echo "I love $txt!";

THE FOLLOWING EXAMPLE WILL PRODUCE THE SAME OUTPUT AS THE EXAMPLE ABOVE:

EXAMPLE
$txt = "Bender";

echo "I love " . $txt . "!";

THE FOLLOWING EXAMPLE WILL OUTPUT THE SUM OF TWO VARIABLES:

EXAMPLE
$x = 5;

$y = 4;

echo $x + $y;

PHP IS A LOOSELY TYPED LANGUAGE


IN THE EXAMPLE ABOVE, NOTICE THAT WE DID NOT HAVE TO TELL PHP WHICH DATA
TYPE THE VARIABLE IS.

PHP AUTOMATICALLY ASSOCIATES A DATA TYPE TO THE VARIABLE, DEPENDING ON ITS


VALUE. SINCE THE DATA TYPES ARE NOT SET IN A STRICT SENSE, YOU CAN DO THINGS
LIKE ADDING A STRING TO AN INTEGER WITHOUT CAUSING AN ERROR.

IN PHP 7, TYPE DECLARATIONS WERE ADDED. THIS GIVES AN OPTION TO SPECIFY THE
DATA TYPE EXPECTED WHEN DECLARING A FUNCTION, AND BY ENABLING THE STRICT
REQUIREMENT, IT WILL THROW A "FATAL ERROR" ON A TYPE MISMATCH.

YOU WILL LEARN MORE ABOUT strict AND non-strict REQUIREMENTS, AND DATA
TYPE DECLARATIONS IN THE PHP FUNCTIONS CHAPTER.
VA
RIABLE TYPES
PHP HAS NO COMMAND FOR DECLARING A VARIABLE, AND THE DATA TYPE DEPENDS
ON THE VALUE OF THE VARIABLE.

EXAMPLE
$x = 5; // $x is an integer

$y = "Bender"; // $y is a string

echo $x;

echo $y;

PHP SUPPORTS THE FOLLOWING DATA TYPES:

 STRING
 INTEGER
 FLOAT (FLOATING POINT NUMBERS - ALSO CALLED DOUBLE)
 BOOLEAN
 ARRAY
 OBJECT
 NULL
 RESOURCE

GET THE TYPE


TO GET THE DATA TYPE OF A VARIABLE, USE THE var_dump() FUNCTION.

EXAMPLE
THE var_dump() FUNCTION RETURNS THE DATA TYPE AND THE VALUE:
$x = 5;

var_dump($x);
EXAMPLE
SEE WHAT var_dump() RETURNS FOR OTHER DATA TYPES:
var_dump(5);

var_dump("John");

var_dump(3.14);

var_dump(true);

var_dump([2, 3, 56]);

var_dump(NULL);

ASSIGN STRING TO A VARIABLE


ASSIGNING A STRING TO A VARIABLE IS DONE WITH THE VARIABLE NAME FOLLOWED
BY AN EQUAL SIGN AND THE STRING:

EXAMPLE
$x = "Bender";

echo $x;

STRING VARIABLES CAN BE DECLARED EITHER BY USING DOUBLE OR SINGLE QUOTES,


BUT YOU SHOULD BE AWARE OF THE DIFFERENCES.

ASSIGN MULTIPLE VALUES


YOU CAN ASSIGN THE SAME VALUE TO MULTIPLE VARIABLES IN ONE LINE:

EXAMPLE
ALL THREE VARIABLES GET THE VALUE "Fruit":

$x = $y = $z = "Fruit";

PHP VARIABLES SCOPE


IN PHP, VARIABLES CAN BE DECLARED ANYWHERE IN THE SCRIPT.

THE SCOPE OF A VARIABLE IS THE PART OF THE SCRIPT WHERE THE VARIABLE CAN BE
REFERENCED/USED.

PHP HAS THREE DIFFERENT VARIABLE SCOPES:


 LOCAL
 GLOBAL
 STATIC

GLOBAL AND LOCAL SCOPE


A VARIABLE DECLARED outside A FUNCTION HAS A GLOBAL SCOPE AND CAN ONLY BE
ACCESSED OUTSIDE A FUNCTION:

EXAMPLE
VARIABLE WITH GLOBAL SCOPE:

$x = 5; // global scope

function myTest()

// using x inside this function will generate an error

echo "<p>Variable x inside function is: $x</p>";

myTest();

echo "<p>Variable x outside function is: $x</p>";

A VARIABLE DECLARED within A FUNCTION HAS A LOCAL SCOPE AND CAN ONLY BE
ACCESSED WITHIN THAT FUNCTION:

EXAMPLE
VARIABLE WITH LOCAL SCOPE:

function myTest()

$x = 5; // local scope

echo "<p>Variable x inside function is: $x</p>";

myTest();

// using x outside the function will generate an error

echo "<p>Variable x outside function is: $x</p>";


YOU CAN HAVE LOCAL VARIABLES WITH THE SAME NAME IN DIFFERENT FUNCTIONS,
BECAUSE LOCAL VARIABLES ARE ONLY RECOGNIZED BY THE FUNCTION IN WHICH THEY
ARE DECLARED.

PHP THE GLOBAL KEYWORD


THE global KEYWORD IS USED TO ACCESS A GLOBAL VARIABLE FROM WITHIN A
FUNCTION.

TO DO THIS, USE THE global KEYWORD BEFORE THE VARIABLES (INSIDE THE
FUNCTION):

EXAMPLE
$x = 5;

$y = 10;

function myTest() {

global $x, $y;

$y = $x + $y;

myTest();

echo $y; // outputs 15

PHP ALSO STORES ALL GLOBAL VARIABLES IN AN ARRAY CALLED $GLOBALS[index].


THE index HOLDS THE NAME OF THE VARIABLE. THIS ARRAY IS ALSO ACCESSIBLE
FROM WITHIN FUNCTIONS AND CAN BE USED TO UPDATE GLOBAL VARIABLES
DIRECTLY.

THE EXAMPLE ABOVE CAN BE REWRITTEN LIKE THIS:

EXAMPLE
$x = 5;

$y = 10;

function myTest() {

$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];

}
myTest();

echo $y; // outputs 15

PHP THE STATIC KEYWORD


NORMALLY, WHEN A FUNCTION IS COMPLETED/EXECUTED, ALL OF ITS VARIABLES ARE
DELETED. HOWEVER, SOMETIMES WE WANT A LOCAL VARIABLE NOT TO BE DELETED.
WE NEED IT FOR A FURTHER JOB.

TO DO THIS, USE THE static KEYWORD WHEN YOU FIRST DECLARE THE VARIABLE:

EXAMPLE
function myTest() {

static $x = 0;

echo $x;

$x++;

myTest();

myTest();

myTest();

THEN, EACH TIME THE FUNCTION IS CALLED, THAT VARIABLE WILL STILL HAVE THE
INFORMATION IT CONTAINED FROM THE LAST TIME THE FUNCTION WAS CALLED.

NOTE: THE VARIABLE IS STILL LOCAL TO THE FUNCTION.

PHP ECHO AND PRINT STATEMENT


WITH PHP, THERE ARE TWO BASIC WAYS TO GET OUTPUT: echo AND print.

IN THIS TUTORIAL WE USE echo OR print IN ALMOST EVERY EXAMPLE. SO, THIS
CHAPTER CONTAINS A LITTLE MORE INFO ABOUT THOSE TWO OUTPUT
STATEMENTS.

PHP ECHO AND PRINT STATEMENTS


echo AND print ARE MORE OR LESS THE SAME. THEY ARE BOTH USED TO OUTPUT
DATA TO THE SCREEN.
THE DIFFERENCES ARE SMALL: echo HAS NO RETURN VALUE WHILE print HAS A
RETURN VALUE OF 1 SO IT CAN BE USED IN EXPRESSIONS. echo CAN TAKE MULTIPLE
PARAMETERS (ALTHOUGH SUCH USAGE IS RARE) WHILE print CAN TAKE ONE
ARGUMENT. echo IS MARGINALLY FASTER THAN print.

THE PHP ECHO STATEMENT


THE echo STATEMENT CAN BE USED WITH OR WITHOUT
PARENTHESES: echo or echo().

DISPLAY TEXT

THE FOLLOWING EXAMPLE SHOWS HOW TO OUTPUT TEXT WITH THE echo COMMAND
(NOTICE THAT THE TEXT CAN CONTAIN HTML MARKUP):

EXAMPLE
echo "<h2>PHP is Fun!</h2>";

echo "Hello world!<br>";

echo "I'm about to learn PHP!<br>";

echo "This ", "string ", "was ", "made ", "with multiple parameters.";

DISPLAY VARIABLES

THE FOLLOWING EXAMPLE SHOWS HOW TO OUTPUT TEXT AND VARIABLES WITH
THE echo STATEMENT:

EXAMPLE
$txt1 = "Learn PHP";

$txt2 = "Bender.esp";

$x = 5;

$y = 4;

echo "<h2>" . $txt1 . "</h2>";

echo "Study PHP at " . $txt2 . "<br>";

echo $x + $y;

THE PHP PRINT STATEMENT


THE print STATEMENT CAN BE USED WITH OR WITHOUT
PARENTHESES: print OR print().

DISPLAY TEXT

THE FOLLOWING EXAMPLE SHOWS HOW TO OUTPUT TEXT WITH THE print COMMAND
(NOTICE THAT THE TEXT CAN CONTAIN HTML MARKUP):

EXAMPLE
print "<h2>PHP is Fun!</h2>";

print "Hello world!<br>";

print "I'm about to learn PHP!";

DISPLAY VARIABLES

THE FOLLOWING EXAMPLE SHOWS HOW TO OUTPUT TEXT AND VARIABLES WITH
THE print STATEMENT:

EXAMPLE
$txt1 = "Learn PHP";

$txt2 = "Bender.esp";

$x = 5;

$y = 4;

print "<h2>" . $txt1 . "</h2>";

print "Study PHP at " . $txt2 . "<br>";

print $x + $y;

PHP DATA TYPES


VARIABLES CAN STORE DATA OF DIFFERENT TYPES, AND DIFFERENT DATA TYPES CAN
DO DIFFERENT THINGS.

PHP SUPPORTS THE FOLLOWING DATA TYPES:

 STRING
 INTEGER
 FLOAT (FLOATING POINT NUMBERS - ALSO CALLED DOUBLE)
 BOOLEAN
 ARRAY
 OBJECT
 NULL
 RESOURCE

GETTING THE DATA TYPE


YOU CAN GET THE DATA TYPE OF ANT OBJECT BY USING THE var_dump() FUNCTION.

EXAMPLE
THE var_dump() FUNCTION RETURNS THE DATA TYPE AND THE VALUE:
$x = 5;

var_dump($x);

PHP STRING
A STRING IS A SEQUENCE OF CHARACTERS, LIKE "HELLO WORLD!".

A STRING CAN BE ANY TEXT INSIDE QUOTES. YOU CAN USE SINGLE OR DOUBLE
QUOTES:

EXAMPLE
$x = "Hello world!";

$y = 'Hello world!';

var_dump($x);

echo "<br>";

var_dump($y);

PHP INTEGER
AN INTEGER DATA TYPE IS A NON-DECIMAL NUMBER BETWEEN -2,147,483,648 AND
2,147,483,647.

RULES FOR INTEGERS:

 AN INTEGER MUST HAVE AT LEAST ONE DIGIT


 AN INTEGER MUST NOT HAVE A DECIMAL POINT
 AN INTEGER CAN BE EITHER POSITIVE OR NEGATIVE
 INTEGERS CAN BE SPECIFIED IN: DECIMAL (BASE 10), HEXADECIMAL (BASE
16), OCTAL (BASE 8), OR BINARY (BASE 2) NOTATION
IN THE FOLLOWING EXAMPLE $x IS AN INTEGER. THE PHP var_dump() FUNCTION
RETURNS THE DATA TYPE AND VALUE:

EXAMPLE
$x = 5985;

var_dump($x);

PHP FLOAT
A FLOAT (FLOATING POINT NUMBER) IS A NUMBER WITH A DECIMAL POINT OR A
NUMBER IN EXPONENTIAL FORM.

IN THE FOLLOWING EXAMPLE $x IS A FLOAT. THE PHP var_dump() FUNCTION


RETURNS THE DATA TYPE AND VALUE:

EXAMPLE
$x = 10.365;

var_dump($x);

PHP BOOLEAN
A BOOLEAN REPRESENTS TWO POSSIBLE STATES: TRUE OR FALSE.

EXAMPLE
$x = true;

var_dump($x);

BOOLEANS ARE OFTEN USED IN CONDITIONAL TESTING.

PHP ARRAY
AN ARRAY STORES MULTIPLE VALUES IN ONE SINGLE VARIABLE.

IN THE FOLLOWING EXAMPLE $cars IS AN ARRAY. THE PHP var_dump() FUNCTION


RETURNS THE DATA TYPE AND VALUE:

EXAMPLE
$cars = array("Volvo","BMW","Toyota");
var_dump($cars);

YOU WILL LEARN A LOT MORE ABOUT ARRAYS IN LATER CHAPTERS OF THIS TUTORIAL.

PHP OBJECT
CLASSES AND OBJECTS ARE THE TWO MAIN ASPECTS OF OBJECT-ORIENTED
PROGRAMMING.

A CLASS IS A TEMPLATE FOR OBJECTS, AND AN OBJECT IS AN INSTANCE OF A CLASS.

WHEN THE INDIVIDUAL OBJECTS ARE CREATED, THEY INHERIT ALL THE PROPERTIES
AND BEHAVIORS FROM THE CLASS, BUT EACH OBJECT WILL HAVE DIFFERENT VALUES
FOR THE PROPERTIES.

LET'S ASSUME WE HAVE A CLASS NAMED Car THAT CAN HAVE PROPERTIES LIKE
MODEL, COLOR, ETC. WE CAN DEFINE VARIABLES LIKE $model, $color, AND SO ON,
TO HOLD THE VALUES OF THESE PROPERTIES.

WHEN THE INDIVIDUAL OBJECTS (VOLVO, BMW, TOYOTA, ETC.) ARE CREATED, THEY
INHERIT ALL THE PROPERTIES AND BEHAVIORS FROM THE CLASS, BUT EACH OBJECT
WILL HAVE DIFFERENT VALUES FOR THE PROPERTIES.

IF YOU CREATE A __construct() FUNCTION, PHP WILL AUTOMATICALLY CALL THIS


FUNCTION WHEN YOU CREATE AN OBJECT FROM A CLASS.

EXAMPLE
class Car {

public $color;

public $model;

public function __construct($color, $model)

$this->color = $color;

$this->model = $model;

public function message() {

return "My car is a " . $this->color . " " . $this->model . "!";

}
}

$myCar = new Car("red", "Volvo");

var_dump($myCar);

PHP NULL VALUE


NULL IS A SPECIAL DATA TYPE WHICH CAN HAVE ONLY ONE VALUE: NULL.

A VARIABLE OF DATA TYPE NULL IS A VARIABLE THAT HAS NO VALUE ASSIGNED TO IT.

TIP: IF A VARIABLE IS CREATED WITHOUT A VALUE, IT IS AUTOMATICALLY ASSIGNED


A VALUE OF NULL.

VARIABLES CAN ALSO BE EMPTIED BY SETTING THE VALUE TO NULL:

EXAMPLE
$x = "Hello world!";

$x = null;

var_dump($x);

CHANGE DATA TYPE


IF YOU ASSIGN AN INTEGER VALUE TO A VARIABLE, THE TYPE WILL AUTOMATICALLY BE
AN INTEGER.

IF YOU ASSIGN A STRING TO THE SAME VARIABLE, THE TYPE WILL CHANGE TO A
STRING:

EXAMPLE
$x = 5;

var_dump($x);

$x = "Hello";

var_dump($x);

THIS AUTOMATIC CONVERSION CAN SOMETIMES BREAK YOUR CODE.

PHP RESOURCE
THE SPECIAL RESOURCE TYPE IS NOT AN ACTUAL DATA TYPE. IT IS THE STORING OF A
REFERENCE TO FUNCTIONS AND RESOURCES EXTERNAL TO PHP.
A COMMON EXAMPLE OF USING THE RESOURCE DATA TYPE IS A DATABASE CALL.

WE WILL NOT TALK ABOUT THE RESOURCE TYPE HERE, SINCE IT IS AN ADVANCED
TOPIC.

PHP STRINGS
A STRING IS A SEQUENCE OF CHARACTERS, LIKE "HELLO WORLD!".

STRINGS
STRINGS IN PHP ARE SURROUNDED BY EITHER DOUBLE QUOTATION MARKS, OR
SINGLE QUOTATION MARKS.

EXAMPLE
echo "Hello";

echo 'Hello';

NOTE THERE IS A BIG DIFFERENT BETWEEN DOUBLE QUOTES AND SINGLE QUOTES IN
PHP.

DOUBLE QUOTES PROCESS SPECIAL CHARACTERS, SINGLE QUOTES DOES NOT.

DOUBLE OR SINGLE QUOTES?


YOU CAN USE DOUBLE OR SINGLE QUOTES, BUT YOU SHOULD BE AWARE OF THE
DIFFERENCES BETWEEN THE TWO.

DOUBLE QUOTED STRINGS PERFORM ACTION ON SPECIAL CHARACTERS.

E.G. WHEN THERE IS A VARIABLE IN THE STRING, IT RETURNS THE VALUE OF THE
VARIABLE:

EXAMPLE
DOUBLE QUOTED STRING LITERALS PERFORM OPERATIONS FOR SPECIAL CHARACTERS:

$x = "Bender";

echo "Hello $x";

SINGLE QUOTED STRINGS DOES NOT PERFORM SUCH ACTIONS, IT RETURNS THE
STRING LIKE IT WAS WRITTEN, WITH THE VARIABLE NAME:
EXAMPLE
SINGLE QUOTED STRING LITERALS RETURNS THE STRING AS IT IS:

$x = "Bender";

echo 'Hello $x';

STRING LENGTH
THE PHP strlen() FUNCTION RETURNS THE LENGTH OF A STRING.

EXAMPLE
RETURN THE LENGTH OF THE STRING "Hello world!":

echo strlen("Hello world!");

WORD COUNT
THE PHP str_word_count() FUNCTION COUNTS THE NUMBER OF WORDS IN A
STRING.

EXAMPLE
COUNT THE NUMBER OF WORD IN THE STRING "Hello world!":

echo str_word_count("Hello world!");

SEARCH FOR TEXT WITHIN A STRING


THE PHP strpos() FUNCTION SEARCHES FOR A SPECIFIC TEXT WITHIN A STRING.

IF A MATCH IS FOUND, THE FUNCTION RETURNS THE CHARACTER POSITION OF THE


FIRST MATCH. IF NO MATCH IS FOUND, IT WILL RETURN FALSE.

EXAMPLE
SEARCH FOR THE TEXT "world" IN THE STRING "Hello world!":

echo strpos("Hello world!", "world");

TIP: THE FIRST CHARACTER POSITION IN A STRING IS 0 (NOT 1).

COMPLETE PHP STRING REFERENCE


THE PHP STRING REFERENCE CONTAINS DESCRIPTION AND EXAMPLE OF USE, FOR
EACH FUNCTION!

PHP - MODIFY STRINGS


PHP HAS A SET OF BUILT-IN FUNCTIONS THAT YOU CAN USE TO MODIFY STRINGS.

UPPER CASE
EXAMPLE
THE strtoupper() FUNCTION RETURNS THE STRING IN UPPER CASE:
$x = "Hello World!";

echo strtoupper($x);

LOWER CASE
EXAMPLE
THE strtolower() FUNCTION RETURNS THE STRING IN LOWER CASE:
$x = "Hello World!";

echo strtolower($x);

REPLACE STRING
THE PHP str_replace() FUNCTION REPLACES SOME CHARACTERS WITH SOME
OTHER CHARACTERS IN A STRING.

EXAMPLE
REPLACE THE TEXT "World" WITH "Dolly":

$x = "Hello World!";

echo str_replace("World", "Dolly", $x);

REVERSE A STRING
THE PHP strrev() FUNCTION REVERSES A STRING.
EXAMPLE
REVERSE THE STRING "Hello World!":

$x = "Hello World!";

echo strrev($x);

REMOVE WHITESPACE
WHITESPACE IS THE SPACE BEFORE AND/OR AFTER THE ACTUAL TEXT, AND VERY
OFTEN YOU WANT TO REMOVE THIS SPACE.

EXAMPLE
THE trim() REMOVES ANY WHITESPACE FROM THE BEGINNING OR THE END:
$x = " Hello World! ";

echo trim($x);

CONVERT STRING INTO ARRAY


THE PHP explode() FUNCTION SPLITS A STRING INTO AN ARRAY.

THE FIRST PARAMETER OF THE explode() FUNCTION REPRESENTS THE


"separator". THE "separator" SPECIFIES WHERE TO SPLIT THE STRING.

NOTE: THE SEPARATOR IS REQUIRED.

EXAMPLE
SPLIT THE STRING INTO AN ARRAY. USE THE SPACE CHARACTER AS SEPARATOR:

$x = "Hello World!");

$y = explode(" ", $x);

//Use the print_r() function to display the result:

print_r($y);

/*

Result: Array ( [0] => Hello [1] => World! )

*/
PHP - CONCATENATE STRINGS
STRING CONCATENATION
TO CONCATENATE, OR COMBINE, TWO STRINGS YOU CAN USE THE . OPERATOR:

EXAMPLE
$x = "Hello";

$y = "World";

$z = $x . $y;

echo $z;

THE RESULT OF THE EXAMPLE ABOVE IS HelloWorld, WITHOUT A SPACE


BETWEEN THE TWO WORDS.

YOU CAN ADD A SPACE CHARACTER LIKE THIS:

EXAMPLE
$x = "Hello";

$y = "World";

$z = $x . " " . $y;

echo $z;

AN EASIER AND BETTER WAY IS BY USING THE POWER OF DOUBLE QUOTES.

BY SURROUNDING THE TWO VARIABLES IN DOUBLE QUOTES WITH A WHITE SPACE


BETWEEN THEM, THE WHITE SPACE WILL ALSO BE PRESENT IN THE RESULT:

EXAMPLE
$x = "Hello";

$y = "World";

$z = "$x $y";

echo $z;
PHP - SLICING STRINGS
YOU CAN RETURN A RANGE OF CHARACTERS BY USING THE substr() FUNCTION.

SPECIFY THE START INDEX AND THE NUMBER OF CHARACTERS YOU WANT TO
RETURN.

EXAMPLE
START THE SLICE AT INDEX 6 AND END THE SLICE 5 POSITIONS LATER:

$x = "Hello World!";

echo substr($x, 6, 5);

NOTE THE FIRST CHARACTER HAS INDEX 0.

SLICE TO THE END


BY LEAVING OUT THE LENGTH PARAMETER, THE RANGE WILL GO TO THE END:

EXAMPLE
START THE SLICE AT INDEX 6 AND GO ALL THE WAY TO THE END:

$x = "Hello World!";

echo substr($x, 6);

SLICE FROM THE END


USE NEGATIVE INDEXES TO START THE SLICE FROM THE END OF THE STRING:

EXAMPLE
GET THE 3 CHARACTERS, STARTING FROM THE "O" IN WORLD (INDEX -5):

$x = "Hello World!";

echo substr($x, -5, 3);

NOTE THE LAST CHARACTER HAS INDEX -1.


NEGATIVE LENGTH
USE NEGATIVE LENGTH TO SPECIFY HOW MANY CHARACTERS TO OMIT, STARTING
FROM THE END OF THE STRING:

EXAMPLE
GET THE CHARACTERS STARTING FROM THE "W" IN "World" (INDEX 5) AND
CONTINUE UNTIL 3 CHARACTERS FROM THE END.

SHOULD END UP WITH "Wor":

$x = "Hello World!";

echo substr($x, 5, -3);

PHP - ESCAPE CHARACTERS


TO INSERT CHARACTERS THAT ARE ILLEGAL IN A STRING, USE AN ESCAPE
CHARACTER.

AN ESCAPE CHARACTER IS A BACKSLASH \ FOLLOWED BY THE CHARACTER YOU


WANT TO INSERT.

AN EXAMPLE OF AN ILLEGAL CHARACTER IS A DOUBLE QUOTE INSIDE A STRING


THAT IS SURROUNDED BY DOUBLE QUOTES:

EXAMPLE
$x = "We are the so-called "Vikings" from the north.";

TO FIX THIS PROBLEM, USE THE ESCAPE CHARACTER \":

EXAMPLE
$x = "We are the so-called \"Vikings\" from the north.";

ESCAPE CHARACTERS
ESCAPE CHARACTERS
OTHER ESCAPE CHARACTERS USED
IN PHP:

Code Result

\' Single Quote

\" Double Quote

\$ PHP variables

\n New Line

\r Carriage Return

\t Tab

\f Form Feed

\ooo Octal value

\xhh Hex value


PHP NUMBERS
IN THIS CHAPTER WE WILL LOOK IN DEPTH INTO INTEGERS, FLOATS, AND NUMBER
STRINGS.

THERE ARE THREE MAIN NUMERIC TYPES IN PHP:

 INTEGER
 FLOAT
 NUMBER STRINGS

IN ADDITION, PHP HAS TWO MORE DATA TYPES USED FOR NUMBERS:

 INFINITY
 NAN

VARIABLES OF NUMERIC TYPES ARE CREATED WHEN YOU ASSIGN A VALUE TO


THEM:

EXAMPLE
$a = 5;

$b = 5.34;

$c = "25";

TO VERIFY THE TYPE OF ANY OBJECT IN PHP, USE THE var_dump() FUNCTION:

EXAMPLE
var_dump($a);

var_dump($b);

var_dump($c);

PHP INTEGERS
2, 256, -256, 10358, -179567 ARE ALL INTEGERS.

AN INTEGER IS A NUMBER WITHOUT ANY DECIMAL PART.

AN INTEGER DATA TYPE IS A NON-DECIMAL NUMBER BETWEEN -2147483648 AND


2147483647 IN 32 BIT SYSTEMS, AND BETWEEN -9223372036854775808 AND
9223372036854775807 IN 64 BIT SYSTEMS. A VALUE GREATER (OR LOWER) THAN
THIS, WILL BE STORED AS FLOAT, BECAUSE IT EXCEEDS THE LIMIT OF AN
INTEGER.
NOTE: ANOTHER IMPORTANT THING TO KNOW IS THAT EVEN IF 4 * 2.5 IS 10, THE
RESULT IS STORED AS FLOAT, BECAUSE ONE OF THE OPERANDS IS A FLOAT (2.5).

HERE ARE SOME RULES FOR INTEGERS:

 AN INTEGER MUST HAVE AT LEAST ONE DIGIT


 AN INTEGER MUST NOT HAVE A DECIMAL POINT
 AN INTEGER CAN BE EITHER POSITIVE OR NEGATIVE
 INTEGERS CAN BE SPECIFIED IN THREE FORMATS: DECIMAL (10-BASED),
HEXADECIMAL (16-BASED - PREFIXED WITH 0X) OR OCTAL (8-BASED -
PREFIXED WITH 0)

PHP HAS THE FOLLOWING PREDEFINED CONSTANTS FOR INTEGERS:

 PHP_INT_MAX - THE LARGEST INTEGER SUPPORTED


 PHP_INT_MIN - THE SMALLEST INTEGER SUPPORTED
 PHP_INT_SIZE - THE SIZE OF AN INTEGER IN BYTES

PHP HAS THE FOLLOWING FUNCTIONS TO CHECK IF THE TYPE OF A VARIABLE IS


INTEGER:

 is_int()
 is_integer() - alias of is_int()
 is_long() - alias of is_int()

EXAMPLE
CHECK IF THE TYPE OF A VARIABLE IS INTEGER:

$x = 5985;

var_dump(is_int($x));

$x = 59.85;

var_dump(is_int($x));

PHP MATH
PHP HAS A SET OF MATH FUNCTIONS THAT ALLOWS YOU TO PERFORM
MATHEMATICAL TASKS ON NUMBERS.

PHP pi() FUNCTION


THE pi() FUNCTION RETURNS THE VALUE OF PI:
EXAMPLE
<?php
echo(pi()); // returns 3.1415926535898
?>

PHP min() AND max() FUNCTIONS


THE min() AND max() FUNCTIONS CAN BE USED TO FIND THE LOWEST OR
HIGHEST VALUE IN a LIST OF ARGUMENTS:

EXAMPLE
<?php
echo(min(0, 150, 30, 20, -8, -200)); // returns -200
echo(max(0, 150, 30, 20, -8, -200)); // returns 150
?>

PHP abs() FUNCTION


THE abs() FUNCTION RETURNS THE ABSOLUTE (POSITIVE) VALUE OF A NUMBER:

Example
<?php
echo(abs(-6.7)); // returns 6.7
?>

PHP sqrt() FUNCTION


THE sqrt() FUNCTION RETURNS THE SQUARE ROOT OF A NUMBER:

EXAMPLE
<?php
echo(sqrt(64)); // returns 8
?>

PHP round() FUNCTION


THE round() FUNCTION ROUNDS A FLOATING-POINT NUMBER TO ITS NEAREST
INTEGER:
EXAMPLE
<?php
echo(round(0.60)); // returns 1
echo(round(0.49)); // returns 0
?>

RANDOM NUMBERS
THE rand() FUNCTION GENERATES A RANDOM NUMBER:

EXAMPLE
<?php
echo(rand());
?>

TO GET MORE CONTROL OVER THE RANDOM NUMBER, YOU CAN ADD THE
OPTIONAL MIN AND MAX PARAMETERS TO SPECIFY THE LOWEST INTEGER AND THE
HIGHEST INTEGER TO BE RETURNED.

FOR EXAMPLE, IF YOU WANT A RANDOM INTEGER BETWEEN 10 AND 100


(INCLUSIVE), USE rand(10, 100):

EXAMPLE
<?php
echo(rand(10, 100));
?>

PHP CONSTANTS
CONSTANTS ARE LIKE VARIABLES, EXCEPT THAT ONCE THEY ARE DEFINED
THEY CANNOT BE CHANGED OR UNDEFINED.

A CONSTANT IS AN IDENTIFIER (NAME) FOR A SIMPLE VALUE. THE VALUE CANNOT


BE CHANGED DURING THE SCRIPT.

A VALID CONSTANT NAME STARTS WITH A LETTER OR UNDERSCORE (NO $ SIGN


BEFORE THE CONSTANT NAME).

NOTE: UNLIKE VARIABLES, CONSTANTS ARE AUTOMATICALLY GLOBAL ACROSS


THE ENTIRE SCRIPT.
CREATE A PHP CONSTANT
TO CREATE A CONSTANT, USE THE define() FUNCTION.

SYNTAX
define(name, value, case-insensitive)

Parameters:

 name: SPECIFIES THE NAME OF THE CONSTANT


 value: SPECIFIES THE VALUE OF THE CONSTANT
 case-insensitive: SPECIFIES WHETHER THE CONSTANT NAME SHOULD BE
CASE-INSENSITIVE. DEFAULT IS FALSE. NOTE: DEFINING CASE-INSENSITIVE
CONSTANTS WAS DEPRECATED IN PHP 7.3. PHP 8.0 ACCEPTS ONLY FALSE,
THE VALUE TRUE WILL PRODUCE A WARNING.

EXAMPLE
CREATE A CONSTANT WITH A CASE-SENSITIVE NAME:

<?php
define("GREETING", "Welcome to Bender page!");
echo GREETING;
?>

EXAMPLE
CREATE A CONSTANT WITH A CASE-INSENSITIVE NAME:

<?php
define("GREETING", "Welcome to Bender page!", true);
echo greeting;
?>

PHP CONST KEYWORD


YOU CAN ALSO CREATE A CONSTANT BY USING THE const KEYWORD.

EXAMPLE
CREATE A CONSTANT WITH THE const KEYWORD:
<?php
const MYCAR = "Volvo";
echo MYCAR;
?>
const vs. define()

 const are always case-sensitive


 define() has a case-insensitive option.
 const cannot be created inside another block scope, like inside a function or
inside an if statement.
 define can be created inside another block scope.

PHP CONSTANT ARRAYS


IN PHP7, YOU CAN CREATE AN ARRAY CONSTANT USING THE define() FUNCTION.

EXAMPLE
CREATE AN ARRAY CONSTANT:

<?php
define("cars", [
"Alfa Romeo",
"BMW",
"Toyota"
]);
echo cars[0];
?>

CONSTANTS ARE GLOBAL


CONSTANTS ARE AUTOMATICALLY GLOBAL AND CAN BE USED ACROSS THE ENTIRE
SCRIPT.

EXAMPLE
THIS EXAMPLE USES A CONSTANT INSIDE A FUNCTION, EVEN IF IT IS DEFINED
OUTSIDE THE FUNCTION:

<?php
define("GREETING", "Welcome to Bender page!");

function myTest() {
echo GREETING;
}

myTest();
?>
PHP MAGIC CONSTANTS

Constant Description

__CLASS__ If used inside a class, the class name is returned.

__DIR__ The directory of the file.

__FILE__ The file name including the full path.

__FUNCTION__ If inside a function, the function name is returned.

__LINE__ The current line number.

__METHOD__ If used inside a function that belongs to a class, both class


and function name is returned.

__NAMESPACE__ If used inside a namespace, the name of the namespace is


returned.

__TRAIT__ If used inside a trait, the trait name is returned.

ClassName::class Returns the name of the specified class and the name of the
namespace, if any.

PHP HAS NINE PREDEFINED CONSTANTS THAT CHANGE VALUE DEPENDING ON


WHERE THEY ARE USED, AND THEREFOR THEY ARE CALLED "magic constants".
THESE MAGIC CONSTANTS ARE WRITTEN WITH A DOUBLE UNDERSCORE AT THE
START AND THE END, EXCEPT FOR THE ClassName::class constant.

PHP OPERATORS
OPERATORS ARE USED TO PERFORM OPERATIONS ON VARIABLES AND VALUES.

PHP DIVIDES THE OPERATORS IN THE FOLLOWING GROUPS:

 ARITHMETIC OPERATORS
 ASSIGNMENT OPERATORS
 COMPARISON OPERATORS
 INCREMENT/DECREMENT OPERATORS
 LOGICAL OPERATORS
 STRING OPERATORS
 ARRAY OPERATORS
 CONDITIONAL ASSIGNMENT OPERATORS

PHP ARITHMETIC OPERATORS


THE PHP ARITHMETIC OPERATORS ARE USED WITH NUMERIC VALUES TO PERFORM
COMMON ARITHMETICAL OPERATIONS, SUCH AS ADDITION, SUBTRACTION,
MULTIPLICATION ETC.

Operator Name Example Result

* Multiplication $x * $y Product of $x and $y

/ Division $x / $y Quotient of $x and $y

% Modulus $x % $y Remainder of $x divided by $y

** Exponentiation $x ** $y Result of raising $x to the $y'th


power
PHP ASSIGNMENT OPERATORS
THE PHP ASSIGNMENT OPERATORS ARE USED WITH NUMERIC VALUES TO WRITE A
VALUE TO A VARIABLE.

THE BASIC ASSIGNMENT OPERATOR IN PHP IS "=". IT MEANS THAT THE LEFT
OPERAND GETS SET TO THE VALUE OF THE ASSIGNMENT EXPRESSION ON THE
RIGHT.

ASSIGNMENT SAME AS... DESCRIPTION

X=Y X=Y THE LEFT OPERAND GETS SET TO THE VALUE


OF THE EXPRESSION ON THE RIGHT

X += Y X=X+Y ADDITION

X -= Y X=X-Y SUBTRACTION

X *= Y X=X*Y MULTIPLICATION

X /= Y X=X/Y DIVISION

X %Y X=X%Y MODULAS

PHP COMPARISON OPERATORS


THE PHP COMPARISON OPERATORS ARE USED TO COMPARE TWO VALUES (NUMBER
OR STRING):
OPERATO NAME EXAMPLE RESULT
R

== EQUAL $X == $Y RETURNS TRUE IF $X IS EQUAL TO $Y

=== IDENTICAL $X === $Y RETURNS TRUE IF $X IS EQUAL TO $Y,


AND THEY ARE OF THE SAME TYPE

!= NOT EQUAL $X != $Y RETURNS TRUE IF $X IS NOT EQUAL TO


$Y

<> NOT EQUAL $X <> $Y RETURNS TRUE IF $X IS NOT EQUAL TO


$Y

!== NOT IDENTICAL $X !== $Y RETURNS TRUE IF $X IS NOT EQUAL TO


$Y, OR THEY ARE NOT OF THE SAME
TYPE

> GREATER THAN $X > $Y RETURNS TRUE IF $X IS GREATER THAN


$Y

< LESS THAN $X < $Y RETURNS TRUE IF $X IS LESS THAN $Y

>= GREATER THAN OR $X >= $Y RETURNS TRUE IF $X IS GREATER THAN


EQUAL TO OR EQUAL TO $Y

<= LESS THAN OR EQUAL $X <= $Y RETURNS TRUE IF $X IS LESS THAN OR


TO EQUAL TO $Y

<=> SPACESHIP $X <=> $Y RETURNS AN INTEGER LESS THAN,


EQUAL TO, OR GREATER THAN ZERO,
DEPENDING ON IF $X

PHP INCREMENT / DECREMENT OPERATORS


THE PHP INCREMENT OPERATORS ARE USED TO INCREMENT A VARIABLE'S VALUE.

THE PHP DECREMENT OPERATORS ARE USED TO DECREMENT A VARIABLE'S VALUE.

OPERATOR NAME DESCRIPTION

++$X PRE-INCREMENT INCREMENTS $X BY ONE, THEN RETURNS $X

$X++ POST- RETURNS $X, THEN INCREMENTS $X BY ONE


INCREMENT

--$X PRE-DECREMENT DECREMENTS $X BY ONE, THEN RETURNS


$X

$X-- POST- RETURNS $X, THEN DECREMENTS $X BY


DECREMENT ONE

PHP LOGICAL OPERATORS


THE PHP LOGICAL OPERATORS ARE USED TO COMBINE CONDITIONAL
STATEMENTS.

OPERATOR NAME EXAMPLE RESULT

AND AND $X AND $Y TRUE IF BOTH $X AND $Y ARE TRUE


OR OR $X OR $Y TRUE IF EITHER $X OR $Y IS TRUE

XOR XOR $X XOR $Y TRUE IF EITHER $X OR $Y IS TRUE,


BUT NOT BOTH

&& AND $X && $Y TRUE IF BOTH $X AND $Y ARE TRUE

|| OR $X || $Y TRUE IF EITHER $X OR $Y IS TRUE

! NOT !$X TRUE IF $X IS NOT TRUE

PHP STRING OPERATORS


PHP HAS TWO OPERATORS THAT ARE SPECIALLY DESIGNED FOR STRINGS.

OPERATOR NAME EXAMPLE RESULT

. CONCATENATION $TXT1 . $TXT2 CONCATENATION OF


$TXT1 AND $TXT2

.= CONCATENATION $TXT1 .= APPENDS $TXT2 TO $TXT1


ASSIGNMENT $TXT2

PHP ARRAY OPERATORS


THE PHP ARRAY OPERATORS ARE USED TO COMPARE ARRAYS.
OPERATO NAME EXAMPLE RESULT
R

+ UNION $X + $Y UNION OF $X AND $Y

== EQUALITY $X == $Y RETURNS TRUE IF $X AND $Y HAVE THE SAME


KEY/VALUE PAIRS

=== IDENTITY $X === $Y RETURNS TRUE IF $X AND $Y HAVE THE SAME


KEY/VALUE PAIRS IN THE SAME ORDER AND OF
THE SAME TYPES

!= INEQUALITY $X != $Y RETURNS TRUE IF $X IS NOT EQUAL TO $Y

<> INEQUALITY $X <> $Y RETURNS TRUE IF $X IS NOT EQUAL TO $Y

!== NON- $X !== $Y RETURNS TRUE IF $X IS NOT IDENTICAL TO $Y


IDENTITY

PHP CONDITIONAL ASSIGNMENT OPERATORS


THE PHP CONDITIONAL ASSIGNMENT OPERATORS ARE USED TO SET A VALUE
DEPENDING ON CONDITIONS:

OPERATOR NAME EXAMPLE RESULT

?: TERNARY $X RETURNS THE VALUE OF $X.


= EXPR1 ? EXPR2 : EXPR THE VALUE OF $X
3 IS EXPR2 IF EXPR1 = TRUE.
THE VALUE OF $X
IS EXPR3 IF EXPR1 = FALSE

?? NULL $X = EXPR1 ?? EXPR2 RETURNS THE VALUE OF $X.


COALESCING THE VALUE OF $X
IS EXPR1 IF EXPR1 EXISTS, AND IS
NOT NULL.
IF EXPR1 DOES NOT EXIST,

PHP IF...ELSE...ELSEIF STATEMENTS


CONDITIONAL STATEMENTS ARE USED TO PERFORM DIFFERENT ACTIONS BASED
ON DIFFERENT CONDITIONS.

PHP CONDITIONAL STATEMENTS


VERY OFTEN WHEN YOU WRITE CODE, YOU WANT TO PERFORM DIFFERENT
ACTIONS FOR DIFFERENT CONDITIONS. YOU CAN USE CONDITIONAL STATEMENTS
IN YOUR CODE TO DO THIS.

IN PHP WE HAVE THE FOLLOWING CONDITIONAL STATEMENTS:

 if statement - executes some code if one condition is true


 if...else statement - executes some code if a condition is true and another
code if that condition is false
 if...elseif...else statement - executes different codes for more than
two conditions
 switch statement - selects one of many blocks of code to be executed

PHP - THE IF STATEMENT


THE if STATEMENT EXECUTES SOME CODE IF ONE CONDITION IS TRUE.

SYNTAX
if (condition) {
code to be executed if condition is true;
}

EXAMPLE
OUTPUT "HAVE A GOOD DAY!" IF THE CURRENT TIME (HOUR) IS LESS THAN 20:
<?php
$t = date("H");

if ($t < "20") {


echo "Have a good day!";
}
?>

PHP - THE IF...ELSE STATEMENT


THE if...else STATEMENT EXECUTES SOME CODE IF A CONDITION IS TRUE AND
ANOTHER CODE IF THAT CONDITION IS FALSE.

SYNTAX
if (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}

EXAMPLE
OUTPUT "HAVE A GOOD DAY!" IF THE CURRENT TIME IS LESS THAN 20, AND "HAVE
A GOOD NIGHT!" OTHERWISE:

<?php
$t = date("H");

if ($t < "20") {


echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>

PHP - THE IF...ELSEIF...ELSE STATEMENT


THE if...elseif...else STATEMENT EXECUTES DIFFERENT CODES FOR MORE
THAN TWO CONDITIONS.

SYNTAX
if (condition)
{
code to be executed if this condition is true;
} elseif (condition)
{
code to be executed if first condition is false and this condition is true;
} else {
code to be executed if all conditions are false;
}

EXAMPLE
OUTPUT "HAVE A GOOD MORNING!" IF THE CURRENT TIME IS LESS THAN 10, AND
"HAVE A GOOD DAY!" IF THE CURRENT TIME IS LESS THAN 20. OTHERWISE IT WILL
OUTPUT "HAVE A GOOD NIGHT!":

<?php
$t = date("H");

if ($t < "10") {


echo "Have a good morning!";
} elseif ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>

SHORT HAND IF
TO WRITE SHORTER CODE, YOU CAN WRITE IF STATEMENTS ON ONE LINE.

EXAMPLE
ONE-LINE IF STATEMENT:

<?php
$a = 5;

if ($a < 10) $b = "Hello";

echo $b
?>

SHORT HAND IF...ELSE


IF...ELSE STATEMENTS CAN ALSO BE WRITTEN IN ONE LINE, BUT THE SYNTAX IS A
BIT DIFFERENT.

EXAMPLE
ONE-LINE IF...ELSE STATEMENT:
<?php
$a = 13;

$b = $a < 10 ? "Hello" : "Good Bye";

echo $b;
?>

THIS TECHNIQUE IS KNOWN AS TERNARY OPERATORS, OR CONDITIONAL


EXPRESSIONS.

NESTED IF
YOU CAN HAVE if STATEMENTS INSIDE if STATEMENTS, THIS IS
CALLED NESTED if STATEMENTS.

EXAMPLE
AN if INSIDE AN if:

<?php
$a = 13;

if ($a > 10) {


echo "Above 10";
if ($a > 20) {
echo " and also above 20";
} else {
echo " but not above 20";
}
}
?>

PHP SWITCH STATEMENT


THE switch STATEMENT IS USED TO PERFORM DIFFERENT ACTIONS BASED ON
DIFFERENT CONDITIONS.

THE PHP SWITCH STATEMENT


USE THE switch STATEMENT TO SELECT ONE OF MANY BLOCKS OF CODE TO
BE EXECUTED.

SYNTAX
switch (n) {
case label1: code to be executed if n=label1;
break;
case label2: code to be executed if n=label2;
break;
case label3: code to be executed if n=label3;
break;
...
default:
code to be executed if n is different from all labels;
}

THIS IS HOW IT WORKS: FIRST WE HAVE A SINGLE EXPRESSION N (MOST OFTEN A


VARIABLE), THAT IS EVALUATED ONCE. THE VALUE OF THE EXPRESSION IS THEN
COMPARED WITH THE VALUES FOR EACH CASE IN THE STRUCTURE. IF THERE IS A
MATCH, THE BLOCK OF CODE ASSOCIATED WITH THAT CASE IS EXECUTED.
USE break TO PREVENT THE CODE FROM RUNNING INTO THE NEXT CASE
AUTOMATICALLY. THE default STATEMENT IS USED IF NO MATCH IS FOUND.

EXAMPLE
<?php
$favcolor = "red";

switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
break;
case "blue":
echo "Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, nor green!";
} ?>

PHP LOOPS
IN THE FOLLOWING CHAPTERS YOU WILL LEARN HOW TO REPEAT CODE BY USING
LOOPS IN PHP.

OFTEN WHEN YOU WRITE CODE, YOU WANT THE SAME BLOCK OF CODE TO RUN OVER
AND OVER AGAIN A CERTAIN NUMBER OF TIMES. SO, INSTEAD OF ADDING SEVERAL
ALMOST EQUAL CODE-LINES IN A SCRIPT, WE CAN USE LOOPS.

LOOPS ARE USED TO EXECUTE THE SAME BLOCK OF CODE AGAIN AND AGAIN, AS LONG
AS A CERTAIN CONDITION IS TRUE.
IN PHP, WE HAVE THE FOLLOWING LOOP TYPES:

 while - loops through a block of code as long as the specified condition is


true
 do...while - loops through a block of code once, and then repeats the loop
as long as the specified condition is true
 for - loops through a block of code a specified number of times
 foreach - loops through a block of code for each element in an array

THE FOLLOWING CHAPTERS WILL EXPLAIN AND GIVE EXAMPLES OF EACH LOOP
TYPE.

THE while LOOP - LOOPS THROUGH A BLOCK OF CODE AS LONG AS THE


SPECIFIED CONDITION IS TRUE.

THE PHP WHILE LOOP


THE while LOOP EXECUTES A BLOCK OF CODE AS LONG AS THE SPECIFIED
CONDITION IS TRUE.

EXAMPLE
PRINT $i AS LONG AS $I IS LESS THAN 6:
$i = 1;

while ($i < 6) {

echo $i;

$i++;

NOTE: REMEMBER TO INCREMENT $i, OR ELSE THE LOOP WILL CONTINUE


FOREVER.

THE while LOOP DOES NOT RUN A SPECIFIC NUMBER OF TIMES, BUT CHECKS
AFTER EACH ITERATION IF THE CONDITION IS STILL TRUE.

THE CONDITION DOES NOT HAVE TO BE A COUNTER, IT COULD BE THE STATUS OF


AN OPERATION OR ANY CONDITION THAT EVALUATES TO EITHER TRUE OR FALSE.

THE BREAK STATEMENT


WITH THE break STATEMENT WE CAN STOP THE LOOP EVEN IF THE CONDITION IS
STILL TRUE:
Example
Stop the loop when $i is 3:

$i = 1;

while ($i < 6) { if ($i == 3) break;

echo $i;

$i++; }

THE CONTINUE STATEMENT


WITH THE continue STATEMENT WE CAN STOP THE CURRENT ITERATION, AND
CONTINUE WITH THE NEXT:

EXAMPLE
STOP, AND JUMP TO THE NEXT ITERATION IF $i IS 3:
$i = 0;

while ($i < 6) {

$i++;

if ($i == 3) continue;

echo $i;

ALTERNATIVE SYNTAX
THE while LOOP SYNTAX CAN ALSO BE WRITTEN WITH
THE endwhile STATEMENT LIKE THIS

EXAMPLE
PRINt $i AS LONG AS $i IS LESS THAN 6:
$i = 1;

while ($i < 6):

echo $i;
$i++;

endwhile;

STEP 10
IF YOU WANT THE while LOOP COUNT TO 100, BUT ONLY BY EACH 10, YOU CAN
INCREASE THE COUNTER BY 10 INSTEAD 1 IN EACH ITERATION:

EXAMPLE
COUNT TO 100 BY TENS:

$i = 0;

while ($i < 100) {

$i+=10;

echo $i "<br>";

THE PHP DO...WHILE LOOP


THE do...while LOOP - LOOPS THROUGH A BLOCK OF CODE ONCE, AND THEN
REPEATS THE LOOP AS LONG AS THE SPECIFIED CONDITION IS TRUE.

THE do...while LOOP WILL ALWAYS EXECUTE THE BLOCK OF CODE AT LEAST
ONCE, IT WILL THEN CHECK THE CONDITION, AND REPEAT THE LOOP WHILE THE
SPECIFIED CONDITION IS TRUE.

EXAMPLE
PRINT $i AS LONG AS $i IS LESS THAN 6:
$i = 1;

do {

echo $i;

$i++;

} while ($i < 6);


do...while LOOP THE CONDITION IS TESTED AFTER EXECUTING THE
NOTE: IN A
STATEMENTS WITHIN THE LOOP. THIS MEANS THAT THE do...while LOOP WILL
EXECUTE ITS STATEMENTS AT LEAST ONCE, EVEN IF THE CONDITION IS FALSE.
SEE EXAMPLE BELOW.

LET US SEE WHAT HAPPENS IF WE SET THE $i VARIABLE TO 8 INSTEAD OF 1,


BEFORE EXECUTE THE SAME do...while LOOP AGAIN:

EXAMPLE
SET $i = 8, THEN PRINT $i AS LONG AS $i IS LESS THAN 6:
$i = 8;

do { echo $i;

$i++; } while ($i < 6);

THE BREAK STATEMENT


WITH THE break STATEMENT WE CAN STOP THE LOOP EVEN IF THE CONDITION IS
STILL TRUE:

EXAMPLE
STOP THE LOOP WHEN $i IS 3:
$i = 1;

do {

if ($i == 3) break;

echo $i;

$i++; } while ($i < 6);

THE CONTINUE STATEMENT


WITH THE continue STATEMENT WE CAN STOP THE CURRENT ITERATION, AND
CONTINUE WITH THE NEXT:

EXAMPLE
STOP, AND JUMP TO THE NEXT ITERATION IF $i IS 3:
$i = 0;

do {

$i++;

if ($i == 3) continue;

echo $i; } while ($i < 6);

THE PHP FOR LOOP


THE FOR LOOP IS USED WHEN YOU KNOW HOW MANY TIMES THE SCRIPT SHOULD
RUN.

SYNTAX
for (expression1, expression2, expression3) {

// code block

THIS IS HOW IT WORKS:

 EXPRESSION1 IS EVALUATED ONCE


 EXPRESSION2 IS EVALUATED BEFORE EACH ITERARION
 EXPRESSION3 IS EVALUATED AFTER EACH ITERARION

EXAMPLE
PRINT THE NUMBERS FROM 0 TO 10:

for ($x = 0; $x <= 10; $x++) {

echo "The number is: $x <br>";

EXAMPLE EXPLAINED
1. THE FIRST EXPRESSION, $x = 0;, IS EVALUATED ONCE AND SETS A
COUNTER TO 0.
2. THE SECOND EXPRESSION, $x <= 10;, IS EVALUATED BEFORE EACH
ITERATION, AND THE CODE BLOCK IS ONLY EXECUTED IF THIS EXPRESSION
EVALUATES TO TRUE. IN THIS EXAMPLE THE EXPRESSION IS TRUE AS LONG
AS $x IS LESS THAN, OR EQUAL TO, 10.
3. THE THIRD EXPRESSION, $x++;, IS EVALUATED AFTER EACH ITERATION,
AND IN THIS EXAMPLE, THE EXPRESSION INCREASES THE VALUE OF $x BY
ONE AT EACH ITERATION.

THE BREAK STATEMENT


WITH THE break STATEMENT WE CAN STOP THE LOOP EVEN IF THE CONDITION IS
STILL TRUE:

EXAMPLE
STOP THE LOOP WHEN $i IS 3:
for ($x = 0; $x <= 10; $x++) {

if ($i == 3) break;

echo "The number is: $x <br>";

THE CONTINUE STATEMENT


WITH THE continue STATEMENT WE CAN STOP THE CURRENT ITERATION, AND
CONTINUE WITH THE NEXT:

EXAMPLE
STOP, AND JUMP TO THE NEXT ITERATION IF $i IS 3:
for ($x = 0; $x <= 10; $x++) {

if ($x == 3) continue;

echo "The number is: $x <br>";

STEP 10
THIS EXAMPLE COUNTS TO 100 BY TENS:

EXAMPLE
for ($x = 0; $x <= 100; $x+=10) {
echo "The number is: $x <br>";

BREAK IN FOR LOOP


THE break STATEMENT CAN BE USED TO JUMP OUT OF DIFFERENT KIND OF
LOOPS.

THE break STATEMENT CAN BE USED TO JUMP OUT OF A for LOOP.

EXAMPLE
JUMP OUT OF THE LOOP WHEN $x IS 4:
for ($x = 0; $x < 10; $x++) {

if ($x == 4) {

break;

echo "The number is: $x <br>";

BREAK IN WHILE LOOP


THE break STATEMENT CAN BE USED TO JUMP OUT OF A while LOOP.

BREAK EXAMPLE
$x = 0;

while($x < 10) {

if ($x == 4) {

break;

echo "The number is: $x <br>";

$x++;
}

BREAK IN DO WHILE LOOP


THE break STATEMENT CAN BE USED TO JUMP OUT OF A do...while LOOP.

EXAMPLE
STOP THE LOOP WHEN $i IS 3:
$i = 1;

do {

if ($i == 3) break;

echo $i;

$i++;

} while ($i < 6);

BREAK IN FOR EACH LOOP


THE break STATEMENT CAN BE USED TO JUMP OUT OF A foreach LOOP.

EXAMPLE
STOP THE LOOP IF $x IS "BLUE":
$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $x) {

if ($x == "blue") break;

echo "$x <br>";

CONTINUE IN FOR LOOPS


THE continue STATEMENT CAN BE USED TO JUMP OUT OF THE CURRENT
ITERATION OF A LOOP, AND CONTINUE WITH THE NEXT.

THE continue STATEMENT STOPS THE CURRENT ITERATION IN THE for LOOP
AND CONTINUE WITH THE NEXT.
EXAMPLE
MOVE TO NEXT ITERATION IF $x = 4:
for ($x = 0; $x < 10; $x++) {

if ($x == 4)

continue;

echo "The number is: $x <br>";

CONTINUE IN WHILE LOOP


THE continue STATEMENT STOPS THE CURRENT ITERATION IN THE while LOOP
AND CONTINUE WITH THE NEXT.

CONTINUE EXAMPLE
MOVE TO NEXT ITERATION IF $x = 4:
$x = 0;

while($x < 10) {

if ($x == 4) {

continue;

echo "The number is: $x <br>";

$x++;

CONTINUE IN DO WHILE LOOP


THE continue STATEMENT STOPS THE CURRENT ITERATION IN THE do
while LOOP AND CONTINUE WITH THE NEXT.

EXAMPLE
STOP, AND JUMP TO THE NEXT ITERATION IF $i IS 3:
$i = 0;

do {

$i++;

if ($i == 3) continue;

echo $i;

} while ($i < 6);

CONTINUE IN FOR EACH LOOP


THE continue STATEMENT STOPS THE CURRENT ITERATION IN
THE foreach LOOP AND CONTINUE WITH THE NEXT.

EXAMPLE
STOP, AND JUMP TO THE NEXT ITERATION IF $x IS "BLUE":
$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $x) {

if ($x == "blue") continue;

echo "$x <br>";

PHP FUNCTIONS
THE REAL POWER OF PHP COMES FROM ITS FUNCTIONS.

PHP HAS MORE THAN 1000 BUILT-IN FUNCTIONS, AND IN ADDITION YOU CAN
CREATE YOUR OWN CUSTOM FUNCTIONS.
PHP BUILT-IN FUNCTIONS
PHP HAS OVER 1000 BUILT-IN FUNCTIONS THAT CAN BE CALLED DIRECTLY, FROM
WITHIN A SCRIPT, TO PERFORM A SPECIFIC TASK.

PHP USER DEFINED FUNCTIONS


BESIDES THE BUILT-IN PHP FUNCTIONS, IT IS POSSIBLE TO CREATE YOUR OWN
FUNCTIONS.

 A FUNCTION IS A BLOCK OF STATEMENTS THAT CAN BE USED REPEATEDLY


IN A PROGRAM.
 A FUNCTION WILL NOT EXECUTE AUTOMATICALLY WHEN A PAGE LOADS.
 A FUNCTION WILL BE EXECUTED BY A CALL TO THE FUNCTION.

CREATE A FUNCTION
A USER-DEFINED FUNCTION DECLARATION STARTS WITH THE
KEYWORD function, FOLLOWED BY THE NAME OF THE FUNCTION:

EXAMPLE
function myMessage() {

echo "Hello world!";

NOTE: A FUNCTION NAME MUST START WITH A LETTER OR AN UNDERSCORE.


FUNCTION NAMES ARE NOT CASE-SENSITIVE.

TIP: GIVE THE FUNCTION A NAME THAT REFLECTS WHAT THE FUNCTION DOES!

CALL A FUNCTION
TO CALL THE FUNCTION, JUST WRITE ITS NAME FOLLOWED BY PARENTHESES ():

EXAMPLE
function myMessage() {

echo "Hello world!";


} myMessage();

IN OUR EXAMPLE, WE CREATE A FUNCTION NAMED mymessage().

THE OPENING CURLY BRACE { INDICATES THE BEGINNING OF THE FUNCTION


CODE, AND THE CLOSING CURLY BRACE } INDICATES THE END OF THE FUNCTION.

THE FUNCTION OUTPUTS "HELLO WORLD!".

PHP FUNCTION ARGUMENTS


INFORMATION CAN BE PASSED TO FUNCTIONS THROUGH ARGUMENTS. AN
ARGUMENT IS JUST LIKE A VARIABLE.

ARGUMENTS ARE SPECIFIED AFTER THE FUNCTION NAME, INSIDE THE


PARENTHESES. YOU CAN ADD AS MANY ARGUMENTS AS YOU WANT, JUST
SEPARATE THEM WITH A COMMA.

THE FOLLOWING EXAMPLE HAS A FUNCTION WITH ONE ARGUMENT ($fname).


WHEN THE familyName() FUNCTION IS CALLED, WE ALSO PASS ALONG A NAME,
E.G. ("Jani"), AND THE NAME IS USED INSIDE THE FUNCTION, WHICH OUTPUTS
SEVERAL DIFFERENT FIRST NAMES, BUT AN EQUAL LAST NAME:

EXAMPLE
function familyName($fname) {

echo "$fname Refsnes.<br>";

familyName("Jani");

familyName("Hege");

familyName("Stale");

familyName("Kai Jim");

familyName("Borge");

THE FOLLOWING EXAMPLE HAS A FUNCTION WITH TWO ARGUMENTS ($fname,


$year):

EXAMPLE
function familyName($fname, $year) {

echo "$fname Refsnes. Born in $year <br>";


}

familyName("Hege", "1975");

familyName("Stale", "1978");

familyName("Kai Jim", "1983");

PHP DEFAULT ARGUMENT VALUE


THE FOLLOWING EXAMPLE SHOWS HOW TO USE A DEFAULT PARAMETER. IF WE
CALL THE FUNCTION setHeight() WITHOUT ARGUMENTS IT TAKES THE DEFAULT
VALUE AS ARGUMENT:

EXAMPLE
function setHeight($minheight = 50) {

echo "The height is : $minheight <br>";

setHeight(350);

setHeight(); // will use the default value of 50

setHeight(135);

setHeight(80);

PHP FUNCTIONS - RETURNING VALUES


TO LET A FUNCTION RETURN A VALUE, USE THE return STATEMENT:

Example
function sum($x, $y) {

$z = $x + $y;

return $z;

echo "5 + 10 = " . sum(5, 10) . "<br>";

echo "7 + 13 = " . sum(7, 13) . "<br>";


echo "2 + 4 = " . sum(2, 4);

PASSING ARGUMENTS BY REFERENCE


IN PHP, ARGUMENTS ARE USUALLY PASSED BY VALUE, WHICH MEANS THAT A COPY
OF THE VALUE IS USED IN THE FUNCTION AND THE VARIABLE THAT WAS PASSED
INTO THE FUNCTION CANNOT BE CHANGED.

WHEN A FUNCTION ARGUMENT IS PASSED BY REFERENCE, CHANGES TO THE


ARGUMENT ALSO CHANGE THE VARIABLE THAT WAS PASSED IN. TO TURN A
FUNCTION ARGUMENT INTO A REFERENCE, THE & OPERATOR IS USED:

EXAMPLE
USE A PASS-BY-REFERENCE ARGUMENT TO UPDATE A VARIABLE:

function add_five(&$value) {

$value += 5;

$num = 2;

add_five($num);

echo $num;

VARIABLE NUMBER OF ARGUMENTS


BY USING THE ... OPERATOR IN FRONT OF THE FUNCTION PARAMETER, THE
FUNCTION ACCEPTS AN UNKNOWN NUMBER OF ARGUMENTS. THIS IS ALSO CALLED
A VARIADIC FUNCTION.

THE VARIADIC FUNCTION ARGUMENT BECOMES AN ARRAY.

EXAMPLE
A FUNCTION THAT DO NOT KNOW HOW MANY ARGUMENTS IT WILL GET:

function sumMyNumbers(...$x) {

$n = 0;

$len = count($x);

for($i = 0; $i < $len; $i++) {

$n += $x[$i];
}

return $n;

$a = sumMyNumbers(5, 2, 6, 2, 7, 7);

echo $a;

YOU CAN ONLY HAVE ONE ARGUMENT WITH VARIABLE LENGTH, AND IT HAS TO BE
THE LAST ARGUMENT.

EXAMPLE
THE VARIADIC ARGUMENT MUST BE THE LAST ARGUMENT:

function myFamily($lastname, ...$firstname) {

txt = "";

$len = count($firstname);

for($i = 0; $i < $len; $i++) {

$txt = $txt."Hi, $firstname[$i] $lastname.<br>";

} return $txt;

$a = myFamily("Doe", "Jane", "John", "Joey");

echo $a;

IF THE VARIADIC ARGUMENT IS NOT THE LAST ARGUMENT, YOU WILL GET AN
ERROR.

EXAMPLE
HAVING THE ... OPERATOR ON THE FIRST OF TWO ARGUMENTS, WILL RAISE AN
ERROR:

function myFamily(...$firstname, $lastname) {

$txt = "";

$len = count($firstname);

for($i = 0; $i < $len; $i++) {

$txt = $txt."Hi, $firstname[$i] $lastname.<br>";


}

return $txt;

$a = myFamily("Doe", "Jane", "John", "Joey");

echo $a;

PHP IS A LOOSELY TYPED LANGUAGE


IN THE EXAMPLES ABOVE, NOTICE THAT WE DID NOT HAVE TO TELL PHP WHICH
DATA TYPE THE VARIABLE IS.

PHP AUTOMATICALLY ASSOCIATES A DATA TYPE TO THE VARIABLE, DEPENDING ON


ITS VALUE. SINCE THE DATA TYPES ARE NOT SET IN A STRICT SENSE, YOU CAN DO
THINGS LIKE ADDING A STRING TO AN INTEGER WITHOUT CAUSING AN ERROR.

IN PHP 7, TYPE DECLARATIONS WERE ADDED. THIS GIVES US AN OPTION TO


SPECIFY THE EXPECTED DATA TYPE WHEN DECLARING A FUNCTION, AND BY
ADDING THE strict DECLARATION, IT WILL THROW A "FATAL ERROR" IF THE
DATA TYPE MISMATCHES.

IN THE FOLLOWING EXAMPLE WE TRY TO SEND BOTH A NUMBER AND A STRING TO


THE FUNCTION WITHOUT USING strict:

EXAMPLE
function addNumbers(int $a, int $b) {

return $a + $b;

echo addNumbers(5, "5 days");

// since strict is NOT enabled "5 days" is changed to int(5), and it will
return 10

TO SPECIFY STRICT WE NEED TO SET DECLARE(STRICT_TYPES=1);. THIS MUST


BE ON THE VERY FIRST LINE OF THE PHP FILE.

IN THE FOLLOWING EXAMPLE WE TRY TO SEND BOTH A NUMBER AND A STRING TO


THE FUNCTION, BUT HERE WE HAVE ADDED THE STRICT DECLARATION:

Example
<?php declare(strict_types=1); // strict requirement
function addNumbers(int $a, int $b) {

return $a + $b;

echo addNumbers(5, "5 days");

// since strict is enabled and "5 days" is not an integer, an error will be
thrown ?>

THE strict DECLARATION FORCES THINGS TO BE USED IN THE INTENDED WAY.

PHP RETURN TYPE DECLARATIONS


PHP 7 ALSO SUPPORTS TYPE DECLARATIONS FOR THE return STATEMENT. LIKE
WITH THE TYPE DECLARATION FOR FUNCTION ARGUMENTS, BY ENABLING THE
STRICT REQUIREMENT, IT WILL THROW A "FATAL ERROR" ON A TYPE MISMATCH.

TO DECLARE A TYPE FOR THE FUNCTION RETURN, ADD A COLON ( : ) AND THE
TYPE RIGHT BEFORE THE OPENING CURLY ( { )BRACKET WHEN DECLARING THE
FUNCTION.

IN THE FOLLOWING EXAMPLE WE SPECIFY THE RETURN TYPE FOR THE FUNCTION:

EXAMPLE
<?php declare(strict_types=1); // strict requirement

function addNumbers(float $a, float $b) : float {

return $a + $b;

echo addNumbers(1.2, 5.2);

?>

YOU CAN SPECIFY A DIFFERENT RETURN TYPE, THAN THE ARGUMENT TYPES, BUT
MAKE SURE THE RETURN IS THE CORRECT TYPE:

EXAMPLE
<?php declare(strict_types=1); // strict requirement

function addNumbers(float $a, float $b) : int {

return (int)($a + $b);


}

echo addNumbers(1.2, 5.2);

PHP ARRAYS
AN ARRAY STORES MULTIPLE VALUES IN ONE SINGLE VARIABLE:

EXAMPLE
$cars = array("Volvo", "BMW", "Toyota");

WHAT IS AN ARRAY?
AN ARRAY IS A SPECIAL VARIABLE THAT CAN HOLD MANY VALUES UNDER A
SINGLE NAME, AND YOU CAN ACCESS THE VALUES BY REFERRING TO AN INDEX
NUMBER OR NAME.

PHP ARRAY TYPES


IN PHP, THERE ARE THREE TYPES OF ARRAYS:

 INDEXED ARRAYS - ARRAYS WITH A NUMERIC INDEX


 ASSOCIATIVE ARRAYS - ARRAYS WITH NAMED KEYS
 MULTIDIMENSIONAL ARRAYS - ARRAYS CONTAINING ONE OR MORE
ARRAYS

WORKING WITH ARRAYS


IN THIS TUTORIAL YOU WILL LEARN HOW TO WORK WITH ARRAYS, INCLUDING:

 CREATE ARRAYS
 ACCESS ARRAYS
 UPDATE ARRAYS
 REMOVE ARRAY ITEMS
 SORT ARRAYS

ARRAY ITEMS
ARRAY ITEMS CAN BE OF ANY DATA TYPE.

THE MOST COMMON ARE STRINGS AND NUMBERS (INT, FLOAT), BUT ARRAY ITEMS
CAN ALSO BE OBJECTS, FUNCTIONS OR EVEN ARRAYS.

YOU CAN HAVE DIFFERENT DATA TYPES IN THE SAME ARRAY.


EXAMPLE
ARRAY ITEMS OF FOUR DIFFERENT DATA TYPES:

$myArr = array("Volvo", 15, ["apples", "bananas"], myFunction);

ARRAY FUNCTIONS
THE REAL STRENGTH OF PHP ARRAYS ARE THE BUILT-IN ARRAY FUNCTIONS, LIKE
THE count() FUNCTION FOR COUNTING ARRAY ITEMS:

EXAMPLE
HOW MANY ITEMS ARE IN THE $cars ARRAY:
$cars = array("Volvo", "BMW", "Toyota");

echo count($cars);

PHP INDEXED ARRAYS


IN INDEXED ARRAYS EACH ITEM HAS AN INDEX NUMBER.

BY DEFAULT, THE FIRST ITEM HAS INDEX 0, THE SECOND ITEM HAS ITEM 1, ETC.

EXAMPLE
CREATE AND DISPLAY AN INDEXED ARRAY:

$cars = array("Volvo", "BMW", "Toyota");

var_dump($cars);

ACCESS INDEXED ARRAYS


TO ACCESS AN ARRAY ITEM YOU CAN REFER TO THE INDEX NUMBER.

EXAMPLE
DISPLAY THE FIRST ARRAY ITEM:

$cars = array("Volvo", "BMW", "Toyota");

echo $cars[0];
CHANGE VALUE
TO CHANGE THE VALUE OF AN ARRAY ITEM, USE THE INDEX NUMBER:

EXAMPLE
CHANGE THE VALUE OF THE SECOND ITEM:

$cars = array("Volvo", "BMW", "Toyota");

$cars[1] = "Ford";

var_dump($cars);

LOOP THROUGH AN INDEXED ARRAY


TO LOOP THROUGH AND PRINT ALL THE VALUES OF AN INDEXED ARRAY, YOU
COULD USE A foreach LOOP, LIKE THIS:

EXAMPLE
DISPLAY ALL ARRAY ITEMS:

$cars = array("Volvo", "BMW", "Toyota");

foreach ($cars as $x) {

echo "$x <br>"; }

INDEX NUMBER
THE KEY OF AN INDEXED ARRAY IS A NUMBER, BY DEFAULT THE FIRST ITEM IS 0
AND THE SECOND IS 1 ETC., BUT THERE ARE EXCEPTIONS.

NEW ITEMS GET THE NEXT INDEX NUMBER, MEANING ONE HIGHER THAN
THE HIGHEST EXISTING INDEX.

SO IF YOU HAVE AN ARRAY LIKE THIS:

$cars[0] = "Volvo";

$cars[1] = "BMW";

$cars[2] = "Toyota";

AND IF YOU USE THE array_push() FUNCTION TO ADD A NEW ITEM, THE NEW
ITEM WILL GET THE INDEX 3:
EXAMPLE
array_push($cars, "Ford");

var_dump($cars);

BUT IF YOU HAVE AN ARRAY WITH RANDOM INDEX NUMBERS, LIKE THIS:

$cars[5] = "Volvo";

$cars[7] = "BMW";

$cars[14] = "Toyota";

AND IF YOU USE THE array_push() FUNCTION TO ADD A NEW ITEM, WHAT WILL
BE THE INDEX NUMBER OF THE NEW ITEM?

EXAMPLE
array_push($cars, "Ford");

var_dump($cars);

PHP ASSOCIATIVE ARRAYS


ASSOCIATIVE ARRAYS ARE ARRAYS THAT USE NAMED KEYS THAT YOU ASSIGN TO
THEM.

EXAMPLE Get your own PHP Server

$car = array("brand"=>"Ford", "model"=>"Mustang", "year"=>1964);

var_dump($car);

Try it Yourself »

ACCESS ASSOCIATIVE ARRAYS


TO ACCESS AN ARRAY ITEM YOU CAN REFER TO THE KEY NAME.

EXAMPLE
DISPLAY THE MODEL OF THE CAR:

$car = array("brand"=>"Ford", "model"=>"Mustang", "year"=>1964);


echo $car["model"];

Try it Yourself »

CHANGE VALUE
TO CHANGE THE VALUE OF AN ARRAY ITEM, USE THE KEY NAME:

EXAMPLE
CHANGE THE year ITEM:
$car = array("brand"=>"Ford", "model"=>"Mustang", "year"=>1964);

$car["year"] = 2024;

var_dump($car);

Try it Yourself »

ADVERTISEMENT

LOOP THROUGH AN ASSOCIATIVE ARRAY


TO LOOP THROUGH AND PRINT ALL THE VALUES OF AN ASSOCIATIVE ARRAY, YOU
COULD USE A foreach LOOP, LIKE THIS:

EXAMPLE
DISPLAY ALL ARRAY ITEMS, KEYS AND VALUES:

$car = array("brand"=>"Ford", "model"=>"Mustang", "year"=>1964);

foreach ($car as $x => $y) {

echo "$x: $y <br>";

}
PHP CREATE ARRAYSs
❮ PreviousNext ❯

Create Array
YOU CAN CREATE ARRAYS BY USING THE array() FUNCTION:

EXAMPLE Get your own PHP Server


$cars = array("Volvo", "BMW", "Toyota");

Try it Yourself »

YOU CAN ALSO USE A SHORTER SYNTAX BY USING THE [] BRACKETS:

EXAMPLE
$cars = ["Volvo", "BMW", "Toyota"];

Try it Yourself »

MULTIPLE LINES
LINE BREAKS ARE NOT IMPORTANT, SO AN ARRAY DECLARATION CAN SPAN
MULTIPLE LINES:

EXAMPLE
$cars = [

"Volvo",

"BMW",

"Toyota"

];

Try it Yourself »
TRAILING COMMA
A COMMA AFTER THE LAST ITEM IS ALLOWED:

EXAMPLE
$cars = [

"Volvo",

"BMW",

"Toyota",

];

Try it Yourself »

ARRAY KEYS
WHEN CREATING INDEXED ARRAYS THE KEYS ARE GIVEN AUTOMATICALLY,
STARTING AT 0 AND INCREASED BY 1 FOR EACH ITEM, SO THE ARRAY ABOVE
COULD ALSO BE CREATED WITH KEYS:

EXAMPLE
$cars = [

0 => "Volvo",

1 => "BMW",

2 =>"Toyota"

];

Try it Yourself »

AS YOU CAN SEE, INDEXED ARRAYS ARE THE SAME AS ASSOCIATIVE ARRAYS, BUT
ASSOCIATIVE ARRAYS HAVE NAMES INSTEAD OF NUMBERS:

EXAMPLE
$myCar = [

"brand" => "Ford",


"model" => "Mustang",

"year" => 1964

];

Try it Yourself »

DECLARE EMPTY ARRAY


YOU CAN DECLARE AN EMPTY ARRAY FIRST, AND ADD ITEMS TO IT LATER:

EXAMPLE
$cars = [];

$cars[0] = "Volvo";

$cars[1] = "BMW";

$cars[2] = "Toyota";

Try it Yourself »

THE SAME GOES FOR ASSOCIATIVE ARRAYS, YOU CAN DECLARE THE ARRAY FIRST,
AND THEN ADD ITEMS TO IT:

EXAMPLE
$myCar = [];

$myCar["brand"] = "Ford";

$myCar["model"] = "Mustang";

$myCar["year"] = 1964;

Try it Yourself »

MIXING ARRAY KEYS


YOU CAN HAVE ARRAYS WITH BOTH INDEXED AND NAMED KEYS:
EXAMPLE
$myArr = [];

$myArr[0] = "apples";

$myArr[1] = "bananas";

$myArr["fruit"] = "cherries";

PHP ACCESS ARRAYS


❮ Previous Next ❯

Access Array Item


TO ACCESS AN ARRAY ITEM, YOU CAN REFER TO THE INDEX NUMBER FOR INDEXED
ARRAYS, AND THE KEY NAME FOR ASSOCIATIVE ARRAYS.

EXAMPLE Get your own PHP Server


ACCESS AN ITEM BY REFERRING TO ITS INDEX NUMBER:

$cars = array("Volvo", "BMW", "Toyota");

echo $cars[2];

Try it Yourself »

NOTE: THE FIRST ITEM HAS INDEX 0.

TO ACCESS ITEMS FROM AN ASSOCIATIVE ARRAY, USE THE KEY NAME:

EXAMPLE
ACCESS AN ITEM BY REFERRING TO ITS KEY NAME:

$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);

echo $cars["year"];

Try it Yourself »
DOUBLE OR SINGLE QUOTES
YOU CAN USE BOTH DOUBLE AND SINGLE QUOTES WHEN ACCESSING AN ARRAY:

EXAMPLE
echo $cars["model"];

echo $cars['model'];

Try it Yourself »

EXCECUTE A FUNCTION ITEM


ARRAY ITEMS CAN BE OF ANY DATA TYPE, INCLUDING FUNCTION.

TO EXECUTE SUCH A FUNCTION, USE THE INDEX NUMBER FOLLOWED BY


PARENTHESES ():

EXAMPLE
EXECUTE A FUNCTION ITEM:

function myFunction() {

echo "I come from a function!";

$myArr = array("Volvo", 15, myFunction);

$myArr[2]();

Try it Yourself »

USE THE KEY NAME WHEN THE FUNCTION IS AN ITEM IN A ASSOCIATIVE ARRAY:

EXAMPLE
EXECUTE FUNCTION BY REFERRING TO THE KEY NAME:
function myFunction() {

echo "I come from a function!";

$myArr = array("car" => "Volvo", "age" => 15, "message" => myFunction);

$myArr["message"]();

Try it Yourself »

LOOP THROUGH AN ASSOCIATIVE ARRAY


TO LOOP THROUGH AND PRINT ALL THE VALUES OF AN ASSOCIATIVE ARRAY, YOU
CAN USE A foreach LOOP, LIKE THIS:

EXAMPLE
DISPLAY ALL ARRAY ITEMS, KEYS AND VALUES:

$car = array("brand"=>"Ford", "model"=>"Mustang", "year"=>1964);

foreach ($car as $x => $y) {

echo "$x: $y <br>";

Try it Yourself »

LOOP THROUGH AN INDEXED ARRAY


TO LOOP THROUGH AND PRINT ALL THE VALUES OF AN INDEXED ARRAY, YOU CAN
USE A foreach LOOP, LIKE THIS:
EXAMPLE
DISPLAY ALL ARRAY ITEMS:

$cars = array("Volvo", "BMW", "Toyota");

foreach ($cars as $x) {

echo "$x <br>";

PHP UPDATE ARRAY ITEMs


❮ PreviousNext ❯

Update Array Item


TO UPDATE AN EXISTING ARRAY ITEM, YOU CAN REFER TO THE INDEX NUMBER
FOR INDEXED ARRAYS, AND THE KEY NAME FOR ASSOCIATIVE ARRAYS.

EXAMPLE Get your own PHP Server


CHANGE THE SECOND ARRAY ITEM FROM "BMW" TO "FORD":

$cars = array("Volvo", "BMW", "Toyota");

$cars[1] = "Ford";

Try it Yourself »

NOTE: THE FIRST ITEM HAS INDEX 0.

TO UPDATE ITEMS FROM AN ASSOCIATIVE ARRAY, USE THE KEY NAME:

EXAMPLE
UPDATE THE YEAR TO 2024:

$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);

$cars["year"] = 2024;

Try it Yourself »
UPDATE ARRAY ITEMS IN A FOREACH LOOP
THERE ARE DIFFERENT TECHNIQUES TO USE WHEN CHANGING ITEM VALUES IN
A foreach LOOP.

ONE WAY IS TO INSERT THE & CHARACTER IN THE ASSIGNMENT TO ASSIGN THE
ITEM VALUE BY REFERENCE, AND THEREBY MAKING SURE THAT ANY CHANGES
DONE WITH THE ARRAY ITEM INSIDE THE LOOP WILL BE DONE TO THE ORIGINAL
ARRAY:

EXAMPLE
CHANGE ALL ITEM VALUES TO "FORD":

$cars = array("Volvo", "BMW", "Toyota");

foreach ($cars as &$x) {

$x = "Ford";

unset($x);

var_dump($cars);

Try it Yourself »

NOTE: REMEMBER TO ADD THE unset() FUNCTION AFTER THE LOOP.

WITHOUT THE unset($x) FUNCTION, THE $X VARIABLE WILL REMAIN AS A


REFERENCE TO THE LAST ARRAY ITEM.

TO DEMONSTRATE THIS, SEE WHAT HAPPENS WHEN WE CHANGE THE VALUE


OF $X AFTER THE foreach LOOP:

EXAMPLE
DEMONSTRATE THE CONSEQUENCE OF FORGETTING THE unset() FUNCTION:

$cars = array("Volvo", "BMW", "Toyota");

foreach ($cars as &$x) {

$x = "Ford";

}
$x = "ice cream";

var_dump($cars);

PHP DELETE ARRAY ITEMS


❮ PreviousNext ❯

Remove Array Item


TO REMOVE AN EXISTING ITEM FROM AN ARRAY, YOU CAN USE
THE unset() FUNCTION.

THE unset() FUNCTION DELETES SPECIFIED VARIABLES, AND CAN THEREFOR BE


USED TO DELETE ARRAY ITEMS:

EXAMPLE Get your own PHP Server


REMOVE THE SECOND ITEM:

$cars = array("Volvo", "BMW", "Toyota");

unset($cars[1]);

Try it Yourself »

REMOVE MULTIPLE ARRAY ITEMS


THE unset() FUNCTION TAKES A UNLIMITED NUMBER OF ARGUMENTS, AND CAN
THEREFOR BE USED TO DELETE MULTIPLE ARRAY ITEMS:

EXAMPLE
REMOVE THE FIRST AND THE SECOND ITEM:

$cars = array("Volvo", "BMW", "Toyota");

unset($cars[0], $cars[1]);

Try it Yourself »
NOTE: THE unset() FUNCTION WILL NOT RE-ARRANGE THE INDEXES, AND THE
EXAMPLES ABOVE WILL NO LONGER CONTAIN THE MISSING INDEXES.

USING THE ARRAY_SPLICE FUNCTION


IF YOU WANT THE ARRAY TO RE-ARRANGE THE INDEXES, YOU CAN USE
THE array_splice() FUNCTION.

WITH THE array_splice() FUNCTION YOU SPECIFY THE INDEX (WHERE TO


START) AND HOW MANY ITEMS YOU WANT TO DELETE.

EXAMPLE
REMOVE THE SECOND ITEM:

$cars = array("Volvo", "BMW", "Toyota");

array_splice($cars, 1, 1);

Try it Yourself »

AFTER THE DELETION, THE ARRAY GETS REINDEXED AUTOMTICALLY, STARTING AT


INDEX 0.

REMOVE ITEM FROM AN ASSOCIATIVE ARRAY


TO REMOVE ITEMS FROM AN ASSOCIATIVE ARRAY, YOU CAN USE unset() FUNCTION
LIKE BEFORE, BUT REFERRING TO THE KEY NAME INSTEAD OF INDEX.

EXAMPLE
REMOVE THE "MODEL":

$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);

unset($cars["model"]);

PHP SORTING ARRAYS


❮ PreviousNext ❯
THE ELEMENTS IN AN ARRAY CAN BE SORTED IN ALPHABETICAL OR NUMERICAL
ORDER, DESCENDING OR ASCENDING.

PHP - SORT FUNCTIONS FOR ARRAYS


IN THIS CHAPTER, WE WILL GO THROUGH THE FOLLOWING PHP ARRAY SORT
FUNCTIONS:

 sort() - sort arrays in ascending order


 rsort() - sort arrays in descending order
 asort() - sort associative arrays in ascending order, according to the value
 ksort() - sort associative arrays in ascending order, according to the key
 arsort() - sort associative arrays in descending order, according to the value
 krsort() - sort associative arrays in descending order, according to the key

SORT ARRAY IN ASCENDING ORDER -– SORT ()


THE FOLLOWING EXAMPLE SORTS THE ELEMENTS OF THE $CARS ARRAY IN
ASCENDING ALPHABETICAL ORDER:

EXAMPLE Get your own PHP Server


<?php
$cars = array("Volvo", "BMW", "Toyota");
sort($cars);
?>

Try it Yourself »

THE FOLLOWING EXAMPLE SORTS THE ELEMENTS OF THE $NUMBERS ARRAY IN


ASCENDING NUMERICAL ORDER:

EXAMPLE
<?php
$numbers = array(4, 6, 2, 22, 11);
sort($numbers);
?>

Try it Yourself »

ADVERTISEMENT
SORT ARRAY IN DESCENDING ORDER - rRSORT ()
THE FOLLOWING EXAMPLE SORTS THE ELEMENTS OF THE $cars ARRAY IN
DESCENDING ALPHABETICAL ORDER:

EXAMPLE
<?php
$cars = array("Volvo", "BMW", "Toyota");
rsort($cars);
?>

Try it Yourself »

THE FOLLOWING EXAMPLE SORTS THE ELEMENTS OF THE $NUMBERS ARRAY IN


DESCENDING NUMERICAL ORDER:

EXAMPLE
<?php
$numbers = array(4, 6, 2, 22, 11);
rsort($numbers);
?>

Try it Yourself »

SORT ARRAY (ASCENDING ORDER), ACCORDING TO VALUE -– ASORT ()

THE FOLLOWING EXAMPLE SORTS AN ASSOCIATIVE ARRAY IN ASCENDING ORDER,


ACCORDING TO THE VALUE:

EXAMPLE
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
asort($age);
?>

Try it Yourself »

SORT ARRAY (ASCENDING ORDER), ACCORDING TO KEY -– KSORT ()

THE FOLLOWING EXAMPLE SORTS AN ASSOCIATIVE ARRAY IN ASCENDING ORDER,


ACCORDING TO THE KEY:
EXAMPLE
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
ksort($age);
?>

Try it Yourself »

SORT ARRAY (DESCENDING ORDER), ACCORDING TO VALUE -– ARSORT ()

THE FOLLOWING EXAMPLE SORTS AN ASSOCIATIVE ARRAY IN DESCENDING


ORDER, ACCORDING TO THE VALUE:

EXAMPLE
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
arsort($age);
?>

Try it Yourself »

SORT ARRAY (DESCENDING ORDER), ACCORDING TO KEY -– KRSORT ()

THE FOLLOWING EXAMPLE SORTS AN ASSOCIATIVE ARRAY IN DESCENDING


ORDER, ACCORDING TO THE KEY:

EXAMPLE
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
krsort($age);
?>

PHP MULTIDIMENSIONAL ARRAYS


❮ PreviousNext ❯

IN THE PREVIOUS PAGES, WE HAVE DESCRIBED ARRAYS THAT ARE A


SINGLE LIST OF KEY/VALUE PAIRS.
HOWEVER, SOMETIMES YOU WANT TO STORE VALUES WITH MORE THAN
ONE KEY. FOR THIS, WE HAVE MULTIDIMENSIONAL ARRAYS.

PHP - MULTIDIMENSIONAL ARRAYS


A MULTIDIMENSIONAL ARRAY IS AN ARRAY CONTAINING ONE OR MORE ARRAYS.

PHP SUPPORTS MULTIDIMENSIONAL ARRAYS THAT ARE TWO, THREE, FOUR, FIVE,
OR MORE LEVELS DEEP. HOWEVER, ARRAYS MORE THAN THREE LEVELS DEEP ARE
HARD TO MANAGE FOR MOST PEOPLE.

THE DIMENSION OF AN ARRAY INDICATES THE NUMBER OF INDICES YOU


NEED TO SELECT AN ELEMENT.

 FOR A TWO-DIMENSIONAL ARRAY YOU NEED TWO INDICES TO SELECT AN


ELEMENT
 FOR A THREE-DIMENSIONAL ARRAY YOU NEED THREE INDICES TO SELECT
AN ELEMENT

PHP - TWO-DIMENSIONAL ARRAYS


A TWO-DIMENSIONAL ARRAY IS AN ARRAY OF ARRAYS (A THREE-DIMENSIONAL
ARRAY IS AN ARRAY OF ARRAYS OF ARRAYS).

FIRST, TAKE A LOOK AT THE FOLLOWING TABLE:

NAME STOCK SOLD

Volvo 22 18

BMW 15 13

Saab 5 2

Land Rover 17 15
WE CAN STORE THE DATA FROM THE TABLE ABOVE IN A TWO-DIMENSIONAL
ARRAY, LIKE THIS:

$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);

NOW THE TWO-DIMENSIONAL $CARS ARRAY CONTAINS FOUR ARRAYS, AND IT HAS
TWO INDICES: ROW AND COLUMN.

TO GET ACCESS TO THE ELEMENTS OF THE $CARS ARRAY WE MUST POINT TO THE
TWO INDICES (ROW AND COLUMN):

EXAMPLE Get your own PHP Server


<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>

Try it Yourself »

WE CAN ALSO PUT A for LOOP INSIDE ANOTHER for LOOP TO GET THE ELEMENTS
OF THE $CARS ARRAY (WE STILL HAVE TO POINT TO THE TWO INDICES):

EXAMPLE
<?php
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>
PHP ARRAY FUNCTIONS
❮ PreviousNext ❯

PHP Array Functions


PHP HAS A SET OF BUILT-IN FUNCTIONS THAT YOU CAN USE ON ARRAYS.

Function Description

array()array() Creates an array

array_change_key_case() Changes all keys in an array to lowercase or uppercase


array_change_key_case()

array_chunk()array_chun Splits an array into chunks of arrays


k()

array_column()array_colu Returns the values from a single column in the input array
mn()

array_combine()array_co Creates an array by using the elements from one "keys" array and
mbine() one "values" array

array_count_values()arra Counts all the values of an array


y_count_values()

array_diff()array_diff() Compare arrays, and returns the differences (compare values only)
array_diff_assoc()array_di Compare arrays, and returns the differences (compare keys and
ff_assoc() values)

array_diff_key()array_diff Compare arrays, and returns the differences (compare keys only)
_key()

array_diff_uassoc()array_ Compare arrays, and returns the differences (compare keys and
diff_uassoc() values, using a user-defined key comparison function)

array_diff_ukey()array_di Compare arrays, and returns the differences (compare keys only,
ff_ukey() using a user-defined key comparison function)

array_fill()array_fill() Fills an array with values

array_fill_keys()array_fill_ Fills an array with values, specifying keys


keys()

array_filter()array_filter() Filters the values of an array using a callback function

array_flip()array_flip() Flips/Exchanges all keys with their associated values in an array

array_intersect()array_int Compare arrays, and returns the matches (compare values only)
ersect()

array_intersect_assoc()ar Compare arrays and returns the matches (compare keys and
values)
ray_intersect_assoc()

array_intersect_key()arra Compare arrays, and returns the matches (compare keys only)
y_intersect_key()

array_intersect_uassoc()a Compare arrays, and returns the matches (compare keys and
rray_intersect_uassoc() values, using a user-defined key comparison function)

array_intersect_ukey()arr Compare arrays, and returns the matches (compare keys only,
ay_intersect_ukey() using a user-defined key comparison function)

array_key_exists()array_k Checks if the specified key exists in the array


ey_exists()

array_keys()array_keys() Returns all the keys of an array

array_map()array_map() Sends each value of an array to a user-made function, which


returns new values

array_merge()array_merg Merges one or more arrays into one array


e()

array_merge_recursive()a Merges one or more arrays into one array recursively


rray_merge_recursive()

array_multisort()array_m Sorts multiple or multi-dimensional arrays


ultisort()
array_pad()array_pad() Inserts a specified number of items, with a specified value, to an
array

array_pop()array_pop() Deletes the last element of an array

array_product()array_pro Calculates the product of the values in an array


duct()

array_push()array_push() Inserts one or more elements to the end of an array

array_rand()array_rand() Returns one or more random keys from an array

array_reduce()array_redu Returns an array as a string, using a user-defined function


ce()

array_replace()array_repl Replaces the values of the first array with the values from following
ace() arrays

array_replace_recursive() Replaces the values of the first array with the values from following
array_replace_recursive() arrays recursively

array_reverse()array_reve Returns an array in the reverse order


rse()

array_search()array_searc Searches an array for a given value and returns the key
h()

array_shift()array_shift() Removes the first element from an array, and returns the value of
the removed element

array_slice()array_slice() Returns selected parts of an array

array_splice()array_splice Removes and replaces specified elements of an array


()

array_sum()array_sum() Returns the sum of the values in an array

array_udiff()array_udiff() Compare arrays, and returns the differences (compare values only,
using a user-defined key comparison function)

array_udiff_assoc()array_ Compare arrays, and returns the differences (compare keys and
udiff_assoc() values, using a built-in function to compare the keys and a user-
defined function to compare the values)

array_udiff_uassoc()array Compare arrays, and returns the differences (compare keys and
_udiff_uassoc() values, using two user-defined key comparison functions)

array_uintersect()array_u Compare arrays, and returns the matches (compare values only,
intersect() using a user-defined key comparison function)

array_uintersect_assoc()a Compare arrays, and returns the matches (compare keys and
rray_uintersect_assoc() values, using a built-in function to compare the keys and a user-
defined function to compare the values)

array_uintersect_uassoc() Compare arrays, and returns the matches (compare keys and
array_uintersect_uassoc() values, using two user-defined key comparison functions)
array_unique()array_uniq Removes duplicate values from an array
ue()

array_unshift()array_unsh Adds one or more elements to the beginning of an array


ift()

array_values()array_value Returns all the values of an array


s()

array_walk()array_walk() Applies a user function to every member of an array

array_walk_recursive()arr Applies a user function recursively to every member of an array


ay_walk_recursive()

arsort()arsort() Sorts an associative array in descending order, according to the


value

asort()asort() Sorts an associative array in ascending order, according to the


value

compact()compact() Create array containing variables and their values

count()count() Returns the number of elements in an array

current()current() Returns the current element in an array

each()each() Deprecated from PHP 7.2. Returns the current key and value pair
from an array

end()end() Sets the internal pointer of an array to its last element

extract()extract() Imports variables into the current symbol table from an array

in_array()in_array() Checks if a specified value exists in an array

key()key() Fetches a key from an array

krsort()krsort() Sorts an associative array in descending order, according to the


key

ksort()ksort() Sorts an associative array in ascending order, according to the key

list()list() Assigns variables as if they were an array

natcasesort()natcasesort( Sorts an array using a case insensitive "natural order" algorithm


)

natsort()natsort() Sorts an array using a "natural order" algorithm

next()next() Advance the internal array pointer of an array

pos()pos() Alias of current()current()


prev()prev() Rewinds the internal array pointer

range()range() Creates an array containing a range of elements

reset()reset() Sets the internal pointer of an array to its first element

rsort()rsort() Sorts an indexed array in descending order

shuffle()shuffle() Shuffles an array

sizeof()sizeof() Alias of count()count()

sort()sort() Sorts an indexed array in ascending order

uasort()uasort() Sorts an array by values using a user-defined comparison function


and maintains the index association

uksort()uksort() Sorts an array by keys using a user-defined comparison function

usort()usort() Sorts an array by values using a user-defined comparison function

PHP GLOBAL VARIABLES - SUPERGLOBALS


❮ PreviousNext ❯
SUPERGLOBALS WERE INTRODUCED IN PHP 4.1.0, AND ARE BUILT-IN
VARIABLES THAT ARE ALWAYS AVAILABLE IN ALL SCOPES.

PHP GLOBAL VARIABLES - SUPERGLOBALS


SOME PREDEFINED VARIABLES IN PHP ARE "SUPERGLOBALS", WHICH MEANS THAT
THEY ARE ALWAYS ACCESSIBLE, REGARDLESS OF SCOPE - AND YOU CAN ACCESS
THEM FROM ANY FUNCTION, CLASS OR FILE WITHOUT HAVING TO DO ANYTHING
SPECIAL.

THE PHP SUPERGLOBAL VARIABLES ARE:

 $GLOBALS$GLOBALS
 $_SERVER$_SERVER
 $_REQUEST$_REQUEST
 $_POST$_POST
 $_GET$_GET
 $_FILES
 $_ENV
 $_COOKIE$_COOKIE
 $_SESSION$_SESSION

PHP $GLOBALS
❮ PreviousNext ❯

$GLOBALS IS AN ARRAY THAT CONTAINS ALL GLOBAL VARIABLES.

GLOBAL VARIABLES
GLOBAL VARIABLES ARE VARIABLES THAT CAN BE ACCESSED FROM ANY SCOPE.

VARIABLES OF THE OUTER MOST SCOPE ARE AUTOMATICALLY GLOBAL VARIABLES,


AND CAN BE USED BY ANY SCOPE, E.G. INSIDE A FUNCTION.

TO USE A GLOBAL VARIABLE INSIDE A FUNCTION YOU HAVE TO EITHER DEFINE


THEM AS GLOBAL WITH THE global KEYWORD, OR REFER TO THEM BY USING
THE $GLOBALS SYNTAX.
EXAMPLE
REFER TO THE GLOBAL VARIABLE $x INSIDE A FUNCTION:
$x = 75;

function myfunction() {

echo $GLOBALS['x'];

myfunction()

THIS IS DIFFERENT FROM OTHER PROGRAMMING LANGUAGES WHERE GLOBAL


VARIABLES ARE AVAILABLE WITHOUT SPECIFICALLY REFERRING TO THEM AS
GLOBAL.

EXAMPLE
IN PHP YOU GET NOTHING (OR AN ERROR) WHEN REFERRING TO A GLOBAL
VARIABLE WITHOUT THE $GLOBALS SYNTAX:

$x = 75;

function myfunction() {

echo $x;

myfunction()

YOU CAN ALSO REFER TO GLOBAL VARIABLES INSIDE FUNCTIONS BY DEFINING


THEM AS GLOBAL WITH THE global KEYWORD.

EXAMPLE
DEFINE $x AS GLOBAL INSIDE A FUNCTION:
$x = 75;

function myfunction() {

global $x;

echo $x;

myfunction()
CREATE GLOBAL VARIABLES
VARIABLES CREATED IN THE OUTER MOST SCOPE ARE GLOBAL VARIABLES EITHER
IF THEY ARE CREATED USING THE $GLOBALS SYNTAX OR NOT:

EXAMPLE
$x = 100;

echo $GLOBALS["x"];

echo $x;

VARIABLES CREATED INSIDE A FUNCTION BELONGS ONLY TO THAT FUNCTION, BUT


YOU CAN CREATE GLOBAL VARIABLES INSIDE A FUNCTION BY USING
THE $GLOBALS SYNTAX:

EXAMPLE
CREATE A GLOBAL VARIABLE FROM INSIDE A FUNCTION, AND USE IT OUTSIDE OF
THE FUNCTION:

function myfunction() {

$GLOBALS["x"] = 100;

myfunction();

echo $GLOBALS["x"];

echo $x;

PHP - $_SERVER
$_SERVER IS A PHP SUPER GLOBAL VARIABLE WHICH HOLDS INFORMATION ABOUT
HEADERS, PATHS, AND SCRIPT LOCATIONS.

THE EXAMPLE BELOW SHOWS HOW TO USE SOME OF THE ELEMENTS IN $_SERVER:

EXAMPLE
echo $_SERVER['PHP_SELF'];

echo $_SERVER['SERVER_NAME'];

echo $_SERVER['HTTP_HOST'];
echo $_SERVER['HTTP_REFERER'];

echo $_SERVER['HTTP_USER_AGENT'];

echo $_SERVER['SCRIPT_NAME'];

THE FOLLOWING TABLE LISTS THE MOST IMPORTANT ELEMENTS THAT CAN GO
INSIDE $_SERVER:

Element/Code Description

$_SERVER['PHP_SELF'] Returns the filename of the currently executing


script

$_SERVER['GATEWAY_INTERFACE'] Returns the version of the Common Gateway


Interface (CGI) the server is using

$_SERVER['SERVER_ADDR'] Returns the IP address of the host server

$_SERVER['SERVER_NAME'] Returns the name of the host server (such as


www.w3schools.com)

$_SERVER['SERVER_SOFTWARE'] Returns the server identification string (such as


Apache/2.2.24)

$_SERVER['SERVER_PROTOCOL'] Returns the name and revision of the information


protocol (such as HTTP/1.1)

$_SERVER['REQUEST_METHOD'] Returns the request method used to access the


page (such as POST)

$_SERVER['REQUEST_TIME'] Returns the timestamp of the start of the request


(such as 1377687496)

$_SERVER['QUERY_STRING'] Returns the query string if the page is accessed


via a query string

$_SERVER['HTTP_ACCEPT'] Returns the Accept header from the current


request

$_SERVER['HTTP_ACCEPT_CHARSET'] Returns the Accept_Charset header from the


current request (such as utf-8,ISO-8859-1)

$_SERVER['HTTP_HOST'] Returns the Host header from the current request

$_SERVER['HTTP_REFERER'] Returns the complete URL of the current page (not


reliable because not all user-agents support it)

$_SERVER['HTTPS'] Is the script queried through a secure HTTP


protocol

$_SERVER['REMOTE_ADDR'] Returns the IP address from where the user is


viewing the current page

$_SERVER['REMOTE_HOST'] Returns the Host name from where the user is


viewing the current page

$_SERVER['REMOTE_PORT'] Returns the port being used on the user's machine


to communicate with the web server
$_SERVER['SCRIPT_FILENAME'] Returns the absolute pathname of the currently
executing script

$_SERVER['SERVER_ADMIN'] Returns the value given to the SERVER_ADMIN


directive in the web server configuration file (if
your script runs on a virtual host, it will be the
value defined for that virtual host) (such as
[email protected])

$_SERVER['SERVER_PORT'] Returns the port on the server machine being


used by the web server for communication (such
as 80)

$_SERVER['SERVER_SIGNATURE'] Returns the server version and virtual host name


which are added to server-generated pages

$_SERVER['PATH_TRANSLATED'] Returns the file system based path to the current


script

$_SERVER['SCRIPT_NAME'] Returns the path of the current script

$_SERVER['SCRIPT_URI'] Returns the URI of the current page

PHP - $_REQUEST
$_REQUEST IS A PHP SUPER GLOBAL VARIABLE WHICH CONTAINS SUBMITTED
FORM DATA, AND all COOKIE DATA.

IN OTHER WORDS, $_REQUEST IS AN ARRAY CONTAINING DATA


FROM $_GET, $_POST, AND $_COOKIE.

YOU CAN ACCESS THIS DATA WITH THE $_REQUEST KEYWORD FOLLOWED BY THE
NAME OF THE FORM FIELD, OR COOKIE, LIKE THIS:
$_REQUEST['firstname']

USING $_REQUEST ON $_POST REQUESTS


POST REQUEST ARE USUALLY DATA SUBMITTED FROM AN HTML FORM.

HERE IS AN EXAMPLE OF HOW A HTML FORM COULD LOOK LIKE:

HTML FORM
<html> <body>

<form method="post" action="demo_request.php">

Name: <input type="text" name="fname">

<input type="submit">

</form> </body> </html>

WHEN A USER CLICKS THE SUBMIT BUTTON, THE FORM DATA IS SENT TO A PHP
FILE SPECIFIED IN THE action ATTRIBUTE OF THE <form> tag.

IN THE ACTION FILE WE CAN USE THE $_REQUEST VARIABLE TO COLLECT THE
VALUE OF THE INPUT FIELD.

PHP FILE
$name = $_REQUEST['fname'];

echo $name;

IN THE EXAMPLE BELOW WE HAVE PUT THE HTML FORM AND PHP CODE IN THE
SAME PHP FILE.

WE HAVE ALSO ADDED SOME EXTRA LINES FOR SECURITY.

EXAMPLE
<html>

<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

Name: <input type="text" name="fname">

<input type="submit">

</form>
<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$name = htmlspecialchars($_REQUEST['fname']);

if (empty($name)) {

echo "Name is empty";

} else {

echo $name;

?>

</body> </html>

USING $_REQUEST ON $_GET REQUESTS


GET REQUEST CAN BE FORM SUBMISSIONS AS IN THE EXAMPLE ABOVE, WITH
THE method ATTRIBUTE OF THE HTML <form> ELEMENT SET TO GET.

GET REQUESTS CAN ALSO BE DATA FROM A QUERY STRING (INFORMATION ADDED
AFTER A URL ADDRESS).

HERE IS AN EXAMPLE OF HOW AN HTML HYPERLINK, WITH A QUERY STRING COULD


LOOK LIKE:

HTML LINK
<html>

<body>

<a href="demo_phpfile.php?subject=PHP&web=sexy boyz">Test $GET</a>

</body>

</html>

WHEN A USER CLICKS THE LINK, THE QUERY STRING DATA IS SENT
TO demo_phpfile.php.

IN THE PHP FILE WE CAN USE THE $_REQUEST VARIABLE TO COLLECT THE VALUE
OF THE QUERY STRING.
EXAMPLE
THE PHP FILE demo_phpfile.php:
<html>

<body>

<?php

echo "Study " . $_REQUEST['subject'] . " at " . $_REQUEST['web'];

?>

</body>

</html>

PHP SUPERGLOBAL - $_POST


SUPER GLOBAL VARIABLES ARE BUILT-IN VARIABLES THAT ARE ALWAYS
AVAILABLE IN ALL SCOPES.

PHP $_POST
PHP $_POST IS A PHP SUPER GLOBAL VARIABLE WHICH IS USED TO COLLECT
FORM DATA AFTER SUBMITTING AN HTML form with method="post". $_POST IS
ALSO WIDELY USED TO PASS VARIABLES.

THE EXAMPLE BELOW SHOWS A FORM WITH AN INPUT FIELD AND A SUBMIT
BUTTON. WHEN A USER SUBMITS THE DATA BY CLICKING ON "Submit", THE FORM
DATA IS SENT TO THE FILE SPECIFIED IN THE ACTION ATTRIBUTE OF THE <form>
TAG. IN THIS EXAMPLE, WE POINT TO THE FILE ITSELF FOR PROCESSING FORM
DATA. IF YOU WISH TO USE ANOTHER PHP FILE TO PROCESS FORM DATA, REPLACE
THAT WITH THE FILENAME OF YOUR CHOICE. THEN, WE CAN USE THE SUPER
GLOBAL VARIABLE $_POST TO COLLECT THE VALUE OF THE INPUT FIELD:

EXAMPLE
<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">


Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>

</body>
</html>

PHP SUPERGLOBAL - $_GET


SUPER GLOBAL VARIABLES ARE BUILT-IN VARIABLES THAT ARE ALWAYS
AVAILABLE IN ALL SCOPES.

PHP $_GET
PHP $_GET IS A PHP SUPER GLOBAL VARIABLE WHICH IS USED TO COLLECT FORM
DATA AFTER SUBMITTING AN HTML form with method="get".

$_GET CAN ALSO COLLECT DATA SENT IN THE URL.

ASSUME WE HAVE AN HTML PAGE THAT CONTAINS A HYPERLINK WITH


PARAMETERS:

<html>
<body>
<a href="test_get.php?subject=PHP&web=sexy boyz">Test $GET</a>
</body>
</html>

WHEN A USER CLICKS ON THE LINK "Test $GET", THE PARAMETERS "subject" AND
"web" ARE SENT TO "test_get.php", AND YOU CAN THEN ACCESS THEIR VALUES IN
"test_get.php" WITH $_GET.

THE EXAMPLE BELOW SHOWS THE CODE IN "test_get.php":

EXAMPLE
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>

PHP REGULAR EXPRESSIONS


WHAT IS A REGULAR EXPRESSION?
A REGULAR EXPRESSION IS A SEQUENCE OF CHARACTERS THAT FORMS A SEARCH
PATTERN. WHEN YOU SEARCH FOR DATA IN A TEXT, YOU CAN USE THIS SEARCH
PATTERN TO DESCRIBE WHAT YOU ARE SEARCHING FOR.

A REGULAR EXPRESSION CAN BE A SINGLE CHARACTER, OR A MORE COMPLICATED


PATTERN.

REGULAR EXPRESSIONS CAN BE USED TO PERFORM ALL TYPES OF TEXT SEARCH


AND TEXT REPLACE OPERATIONS.

SYNTAX
IN PHP, REGULAR EXPRESSIONS ARE STRINGS COMPOSED OF DELIMITERS, A
PATTERN AND OPTIONAL MODIFIERS.

$exp = "/bender/i";

IN THE EXAMPLE ABOVE, / IS THE DELIMITER, bender IS THE PATTERN THAT IS


BEING SEARCHED FOR, AND i IS A MODIFIER THAT MAKES THE SEARCH CASE-
INSENSITIVE.

THE DELIMITER CAN BE ANY CHARACTER THAT IS NOT A LETTER, NUMBER,


BACKSLASH OR SPACE. THE MOST COMMON DELIMITER IS THE FORWARD SLASH
(/), BUT WHEN YOUR PATTERN CONTAINS FORWARD SLASHES IT IS CONVENIENT
TO CHOOSE OTHER DELIMITERS SUCH AS # OR ~.

REGULAR EXPRESSION FUNCTIONS


PHP PROVIDES A VARIETY OF FUNCTIONS THAT ALLOW YOU TO USE REGULAR
EXPRESSIONS.THE preg_match(), preg_match_all() AND preg_replace() FUNCTIO
NS ARE SOME OF THE MOST COMMONLY USED ONES:

Function Description
preg_match() Returns 1 if the pattern was found in the string and 0 if not

preg_match_all() Returns the number of times the pattern was found in the string,
which may also be 0

preg_replace() Returns a new string where matched patterns have been replaced
with another string

USING PREG_MATCH ()
THE preg_match() FUNCTION WILL TELL YOU WHETHER A STRING CONTAINS
MATCHES OF a PATTERN.

EXAMPLE
USE A REGULAR EXPRESSION TO DO A CASE-INSENSITIVE SEARCH FOR "BENDER-
SXYY" IN A STRING:

<?php
$str = "Visit bender-sxyy";
$pattern = "/bender-sxyy/i";
echo preg_match($pattern, $str); // Outputs 1
?>

USING PREG_MATCH_ALL ()
THE preg_match_all() FUNCTION WILL TELL YOU HOW MANY MATCHES WERE
FOUND FOR A PATTERN IN A STRING.

EXAMPLE
USE A REGULAR EXPRESSION TO DO A CASE-INSENSITIVE COUNT OF THE NUMBER
OF OCCURRENCES OF "ain" IN A STRING:

<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>

USING PREG_REPLACE ()
THE preg_replace() FUNCTION WILL REPLACE ALL OF THE MATCHES OF THE
PATTERN IN A STRING WITH ANOTHER STRING.

EXAMPLE
USE A CASE-INSENSITIVE REGULAR EXPRESSION TO REPLACE MICROSOFT WITH
bender-sxyy IN A STRING:

<?php
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "bender-sxyy", $str); // Outputs "Visit bendersxy”
?>

REGULAR EXPRESSION MODIFIERS


MODIFIERS CAN CHANGE HOW A SEARCH IS PERFORMED.

Modifier Description

i Performs a case-insensitive search

m Performs a multiline search (patterns that


search for the beginning or end of a string will
match the beginning or end of each line)

u Enables correct matching of UTF-8 encoded


patterns

REGULAR EXPRESSION PATTERNS


BRACKETS ARE USED TO FIND A RANGE OF CHARACTERS:
Expression Description

[abc] Find one character from the options between


the brackets

[^abc] Find any character NOT between the brackets

[0-9] Find one character from the range 0 to 9

METACHARACTERS
METACHARACTERS ARE CHARACTERS WITH A SPECIAL MEANING:

Metacharacter Description

| Find a match for any one of the patterns separated by | as in: cat|
dog|fish

. Find just one instance of any character

^ Finds a match as the beginning of a string as in: ^Hello

$ Finds a match at the end of the string as in: World$

\d Find a digit
\s Find a whitespace character

\b Find a match at the beginning of a word like this: \bWORD, or at


the end of a word like this: WORD\b

\uxxxx Find the Unicode character specified by the hexadecimal number


xxxx

QUANTIFIERS
QUANTIFIERS DEFINE QUANTITIES:

Quantifier Description

n+ Matches any string that contains at least one n

n* Matches any string that contains zero or more occurrences of n

n? Matches any string that contains zero or one occurrences of n

n{x} Matches any string that contains a sequence of X n's

n{x,y} Matches any string that contains a sequence of X to Y n's

n{x,} Matches any string that contains a sequence of at least X n's

NOTE: IF YOUR EXPRESSION NEEDS TO SEARCH FOR ONE OF THE SPECIAL


CHARACTERS YOU CAN USE A BACKSLASH ( \ ) TO ESCAPE THEM. FOR EXAMPLE,
TO SEARCH FOR ONE OR MORE QUESTION MARKS YOU CAN USE THE FOLLOWING
EXPRESSION: $pattern = '/\?+/';

GROUPING
YOU CAN USE PARENTHESES ( ) TO APPLY QUANTIFIERS TO ENTIRE PATTERNS.
THEY ALSO CAN BE USED TO SELECT PARTS OF THE PATTERN TO BE USED AS A
MATCH.

EXAMPLE
USE GROUPING TO SEARCH FOR THE WORD "banana" BY LOOKING
FOR ba FOLLOWED BY TWO INSTANCES OF na:

<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str); // Outputs 1
?>

You might also like