SlideShare a Scribd company logo
1 of 36
Introduction in PHP
Table of contents
• What is PHP?
• Syntax
• Variables, variable types
• Basic functions
• Some predefined variables
• Strings escaping
• PHP – advantages and disadvantages
What is PHP?
Syntax
• The PHP code starts with <?php and ends
with ?>
 Depending on server configuration may also
start with <? (Short style) – but this is bad
practice!
 In terms of XML the <?php - ?> part is called
"processing instruction"
• PHP follows the Perl syntax
 Simplified
 Procedural (Now has OOP too)
 Similar to C and Java
• PHP Script contains one or more statements
Statement are handed to the PHP Preprocessor
one by one
Each statement ends in semicolon ";"
• Our first script contains only one statement:
– call of the function print
<?php
print ("Hello PHP!"); // this is the statement
?>
• PHP script can contain unlimited number of
statements
• Some function can be called without brackets
• You can add comments to the code
Starting with "//", "#" or block in "/*" and "*/"
Only "/*" – "*/" can be used over several lines
Comments are NOT executed
<?php
print "<div>";
print "Hello PHP!";
print "</div>";
?>
• Short opening tag <?=
Forces the result of the expression to be printed
to the browser
Similar to print
Allowed to omit ending ";"
<html>
<head><title>Hello world page</title></head>
<body>
<?="Hello PHP!" ?>
</body>
</html>
Variables
• All variables in PHP start with $ (Perl style)
• PHP is "type-less" language
Variables are not linked with type – they can store value
with different types
No int a = 5; Just $a = 5;
• Each variable is declared when it's first assigned value
This leads to problems due to typing mistakes!
The type of the value determines the type of the variable
<?php // declare string variable $output
$output = "<div>Hello PHP!</div>";
print $output;
?>
• Possible PHP Variable Types are:
Numeric (real or integer)
• The decimal separator is dot ".", not comma
","
Boolean (true or false)
• PHP defines the constants as true, TRUE, True
and false, FALSE, False
• Empty string, zero and some other values are
implicitly converted to "false" in boolean
expressions
– May cause problems when boolean not used
properly
• String values
• Strings may be in single or double quotes
• Start and end quote type should match
• Difference between two types of quotes is
the escape sequences
<?
$output1 = "Hello PHP!";
$output2 = 'Hello again!';
?>
$s = "dollars";
echo 'This costs a lot of $s.'; // This costs a lot of $s.
echo "This costs a lot of $s."; // This costs a lot of dollars.
• Arrays are aggregate values –
combination of values, each assigned a
key in the array
PHP supports associative arrays – keys may be
numeric, strings or any other scalar data types
Keys must be unique across the array
Values in the array may be with different types
PHP Arrays are dynamic – they don’t require
explicit size when created
• PHP Array is declared with keyword array
"=>" means "points to"
If keys are not supplied they are assigned
automatically, starting from 0
<?
// simple array
$arr = array ("a", "b", 7);
// this produces $arr[0], $arr[1] and $arr[2]
// whit values respectively "a", "b" and 7
$arr2 = array ("one" => 1, "two" => 2);
// this produces $arr2["one"] and $arr2["two"]
// whit values respectively 1 and 2
?>
• We access value in the array with "[" and "]"
containing the key
• Arrays are flexible and types of values and
keys may be mixed
<?
$arr = array ("a", "b", 7, "one" => 1, "two" => 2, "other" => array(1,2,3));
// keys types may be mixed:
// $arr[0] will be "a" and $arr["one"] will be 1
// $arr["other"] is also array
// $arr["other"][0]" is 1
print $arr["other"][2]; // will output 3
?>
• In PHP there is special value (null) that means
that the variable has no value
– It is used to express the absence of any data type
– Different from "undefined" variable!
– Different from empty string or zero
<?
$null_variable = null;
?>
• PHP supports "object" variable type
Will be explained further in the OOP lecture
• "Resource" variable type
The resource type means the variable is holding
reference to resource or data, external to your
script
• Example – opened file, database connection,
etc
• PHP expressions are similar to C
"=" - assigning value to variable
+, -, /, *, % - arithmetic operations
==, <=, >=, !=, <, > - comparison
+=, -=, /=, *=, %=, ++, --, etc – prefix/postfix
operators
( and ) – for expressions combining
&, |, >>, <<, ^, ~ - bitwise operators
• String operators
"." (period) – string concatenating
• ===, !== comparison
• different from ==, !=
"10"==10 will produce true, while "10"===10 will
produce false
Strict comparison – $a === $b :
TRUE if $a is equal to $b, and they are of the same
type.
Note: Assignment of value to variable returns as
result the value being assigned
We can have $a = $b = $c = 7;
• In PHP constants are defined with the define
function
Cannot change value
Doesn't start with $
Can hold any scalar value
<?
define ('CONSTANT_NAME', 123);
// from here on CONSTANT_NAME will have value 123
print CONSTANT_NAME; // will output 123
?>
Basic Functions
Phpinfo
Live Demo
• We already know print
Similar to print is echo
print_r(array) – pints array with keys and values
detailed
• phpinfo() – Produces complete page
containing information for the server, PHP
settings, installed modules, etc
<?
echo "123"; // will output 123 to the browser
?>
Predefined Variables
• PHP provides a lot predefined variables and
constants
__FILE__, __LINE__, __FUNCTION__,
__METHOD__, __CLASS__ - contain debug info
PHP_VERSION, PHP_OS, PHP_EOL,
DIRECTORY_SEPARATOR, PHP_INT_SIZE and
others are provided for easy creating cross-
platform applications
• $_SERVER – array, holding information from
the web server – headers, paths and script
locations
DOCUMENT_ROOT – the root directory of the
site in the web server configuration
SERVER_ADDRESS, SERVER_NAME,
SERVER_SOFTWARE, SERVER_PROTOCOL
REMOTE_ADDR, REMOTE_HOST, REMOTE_PORT
PHP_AUTH_USER, PHP_AUTH_PW,
PHP_AUTH_DIGEST
And others
• $_GET, $_POST, $_COOKIE arrays hold the
parameters from the URL, from the post data
and from the cookies accordingly
• $_FILES array holds information for
successfully uploaded files over multipart
post request
• $_SESSION array holds the variables, stored
in the session
• PHP supports $$ syntax- variable variables
The variable $str1 is evaluated as 'test' and so
$$str1 is evaluated as $test
<?
$str1 = 'test';
$test = 'abc';
echo $$str1; // outputs abc
?>
Strings Escaping
• Special chars in stings are escaped with
backslashes (C style)
The escape sequences for double quoted string:
• n – new line (10 in ASCII)
• r – carriage return (13 in ASCII)
• t – horizontal tab
• v – vertical tab
•  - backslash
• $ - dollar sign
• " – double quote
$str1 = "this is "PHP"";
• Single-quoted strings escape the same way
Difference is that instead of " you need ' to
escape the closing quotes
No other escaping sequences will be expanded
• In both single and double quoted strings,
backslash before any other character will be
printed too!
$str1 = 'Arnold once said: "I'll be back"';
• Double quoted strings offer something more:
Variables in double-quoted strings are evaluated
• Note on arrays:
$saying = "I'll be back!";
$str1 = "Arnold once said: $saying";
// this will output:
// Arnold once said: I'll be back!
$sayings = array ('arni' => "I'll be back!");
$str1 = "Arnold once said: ${sayings['arni']}";
Advantages and Disadvantages
• Advantages
Easy to learn, open source, multiplatform and
database support, extensions, community and
commercial driven.
Considered to be one of the fastest languages
• Disadvantages
Too loose syntax – risk tolerant, poor error
handling, poor OOP (before version 6 a lot things
are missing!)
• Resources
– http://php-uroci.devbg.org/
– http://academy.telerik.com/
Introduction to PHP fundamentals including syntax, variables, functions and more

More Related Content

What's hot

php 2 Function creating, calling, PHP built-in function
php 2 Function creating, calling,PHP built-in functionphp 2 Function creating, calling,PHP built-in function
php 2 Function creating, calling, PHP built-in functiontumetr1
 
Class 5 - PHP Strings
Class 5 - PHP StringsClass 5 - PHP Strings
Class 5 - PHP StringsAhmed Swilam
 
Typed Properties and more: What's coming in PHP 7.4?
Typed Properties and more: What's coming in PHP 7.4?Typed Properties and more: What's coming in PHP 7.4?
Typed Properties and more: What's coming in PHP 7.4?Nikita Popov
 
Class 8 - Database Programming
Class 8 - Database ProgrammingClass 8 - Database Programming
Class 8 - Database ProgrammingAhmed Swilam
 
PHP Enums - PHPCon Japan 2021
PHP Enums - PHPCon Japan 2021PHP Enums - PHPCon Japan 2021
PHP Enums - PHPCon Japan 2021Ayesh Karunaratne
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & ArraysHenry Osborne
 
Arrays &amp; functions in php
Arrays &amp; functions in phpArrays &amp; functions in php
Arrays &amp; functions in phpAshish Chamoli
 
Nikita Popov "What’s new in PHP 8.0?"
Nikita Popov "What’s new in PHP 8.0?"Nikita Popov "What’s new in PHP 8.0?"
Nikita Popov "What’s new in PHP 8.0?"Fwdays
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?Nikita Popov
 
Php server variables
Php server variablesPhp server variables
Php server variablesJIGAR MAKHIJA
 
PHP Performance Trivia
PHP Performance TriviaPHP Performance Trivia
PHP Performance TriviaNikita Popov
 
Perl.Hacks.On.Vim
Perl.Hacks.On.VimPerl.Hacks.On.Vim
Perl.Hacks.On.VimLin Yo-An
 

What's hot (20)

Sorting arrays in PHP
Sorting arrays in PHPSorting arrays in PHP
Sorting arrays in PHP
 
Functions in php
Functions in phpFunctions in php
Functions in php
 
php 2 Function creating, calling, PHP built-in function
php 2 Function creating, calling,PHP built-in functionphp 2 Function creating, calling,PHP built-in function
php 2 Function creating, calling, PHP built-in function
 
PHP variables
PHP  variablesPHP  variables
PHP variables
 
Class 5 - PHP Strings
Class 5 - PHP StringsClass 5 - PHP Strings
Class 5 - PHP Strings
 
Data Types In PHP
Data Types In PHPData Types In PHP
Data Types In PHP
 
Typed Properties and more: What's coming in PHP 7.4?
Typed Properties and more: What's coming in PHP 7.4?Typed Properties and more: What's coming in PHP 7.4?
Typed Properties and more: What's coming in PHP 7.4?
 
Syntax
SyntaxSyntax
Syntax
 
Class 8 - Database Programming
Class 8 - Database ProgrammingClass 8 - Database Programming
Class 8 - Database Programming
 
PHP Enums - PHPCon Japan 2021
PHP Enums - PHPCon Japan 2021PHP Enums - PHPCon Japan 2021
PHP Enums - PHPCon Japan 2021
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & Arrays
 
Functions in PHP
Functions in PHPFunctions in PHP
Functions in PHP
 
Arrays &amp; functions in php
Arrays &amp; functions in phpArrays &amp; functions in php
Arrays &amp; functions in php
 
Nikita Popov "What’s new in PHP 8.0?"
Nikita Popov "What’s new in PHP 8.0?"Nikita Popov "What’s new in PHP 8.0?"
Nikita Popov "What’s new in PHP 8.0?"
 
Php functions
Php functionsPhp functions
Php functions
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?
 
Php server variables
Php server variablesPhp server variables
Php server variables
 
PHP Performance Trivia
PHP Performance TriviaPHP Performance Trivia
PHP Performance Trivia
 
Perl.Hacks.On.Vim
Perl.Hacks.On.VimPerl.Hacks.On.Vim
Perl.Hacks.On.Vim
 
Subroutines
SubroutinesSubroutines
Subroutines
 

Similar to Introduction to PHP fundamentals including syntax, variables, functions and more

Zend Certification Preparation Tutorial
Zend Certification Preparation TutorialZend Certification Preparation Tutorial
Zend Certification Preparation TutorialLorna Mitchell
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Michelangelo van Dam
 
Php basics
Php basicsPhp basics
Php basicshamfu
 
php programming.pptx
php programming.pptxphp programming.pptx
php programming.pptxrani marri
 
MIND sweeping introduction to PHP
MIND sweeping introduction to PHPMIND sweeping introduction to PHP
MIND sweeping introduction to PHPBUDNET
 
2014 database - course 2 - php
2014 database - course 2 - php2014 database - course 2 - php
2014 database - course 2 - phpHung-yu Lin
 
P H P Part I, By Kian
P H P  Part  I,  By  KianP H P  Part  I,  By  Kian
P H P Part I, By Kianphelios
 
IT2255 Web Essentials - Unit IV Server-Side Processing and Scripting - PHP.pdf
IT2255 Web Essentials - Unit IV Server-Side Processing and Scripting - PHP.pdfIT2255 Web Essentials - Unit IV Server-Side Processing and Scripting - PHP.pdf
IT2255 Web Essentials - Unit IV Server-Side Processing and Scripting - PHP.pdfpkaviya
 
Learn perl in amc square learning
Learn perl in amc square learningLearn perl in amc square learning
Learn perl in amc square learningASIT Education
 
php fundamental
php fundamentalphp fundamental
php fundamentalzalatarunk
 
Php introduction with history of php
Php introduction with history of phpPhp introduction with history of php
Php introduction with history of phppooja bhandari
 
Lecture 2 php basics (1)
Lecture 2  php basics (1)Lecture 2  php basics (1)
Lecture 2 php basics (1)Core Lee
 

Similar to Introduction to PHP fundamentals including syntax, variables, functions and more (20)

Introduction to php basics
Introduction to php   basicsIntroduction to php   basics
Introduction to php basics
 
Zend Certification Preparation Tutorial
Zend Certification Preparation TutorialZend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010
 
Php basics
Php basicsPhp basics
Php basics
 
php programming.pptx
php programming.pptxphp programming.pptx
php programming.pptx
 
MIND sweeping introduction to PHP
MIND sweeping introduction to PHPMIND sweeping introduction to PHP
MIND sweeping introduction to PHP
 
2014 database - course 2 - php
2014 database - course 2 - php2014 database - course 2 - php
2014 database - course 2 - php
 
P H P Part I, By Kian
P H P  Part  I,  By  KianP H P  Part  I,  By  Kian
P H P Part I, By Kian
 
IT2255 Web Essentials - Unit IV Server-Side Processing and Scripting - PHP.pdf
IT2255 Web Essentials - Unit IV Server-Side Processing and Scripting - PHP.pdfIT2255 Web Essentials - Unit IV Server-Side Processing and Scripting - PHP.pdf
IT2255 Web Essentials - Unit IV Server-Side Processing and Scripting - PHP.pdf
 
05php
05php05php
05php
 
PHP Basic
PHP BasicPHP Basic
PHP Basic
 
Learn perl in amc square learning
Learn perl in amc square learningLearn perl in amc square learning
Learn perl in amc square learning
 
Prersentation
PrersentationPrersentation
Prersentation
 
php fundamental
php fundamentalphp fundamental
php fundamental
 
Php introduction with history of php
Php introduction with history of phpPhp introduction with history of php
Php introduction with history of php
 
php
phpphp
php
 
Php classes in mumbai
Php classes in mumbaiPhp classes in mumbai
Php classes in mumbai
 
Php basics
Php basicsPhp basics
Php basics
 
Php
PhpPhp
Php
 
Lecture 2 php basics (1)
Lecture 2  php basics (1)Lecture 2  php basics (1)
Lecture 2 php basics (1)
 

More from Bozhidar Boshnakov

PMG Gabrovo - Web Development Level 0 - Introduction
PMG Gabrovo - Web Development Level 0 - IntroductionPMG Gabrovo - Web Development Level 0 - Introduction
PMG Gabrovo - Web Development Level 0 - IntroductionBozhidar Boshnakov
 
QA Challange Accepted - How and why we should use Behat?
QA Challange Accepted - How and why we should use Behat?QA Challange Accepted - How and why we should use Behat?
QA Challange Accepted - How and why we should use Behat?Bozhidar Boshnakov
 
Как да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходКак да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходBozhidar Boshnakov
 

More from Bozhidar Boshnakov (9)

Mission possible - revival
Mission possible - revivalMission possible - revival
Mission possible - revival
 
Web fundamentals 2
Web fundamentals 2Web fundamentals 2
Web fundamentals 2
 
Web fundamentals - part 1
Web fundamentals - part 1Web fundamentals - part 1
Web fundamentals - part 1
 
PMG Gabrovo - Web Development Level 0 - Introduction
PMG Gabrovo - Web Development Level 0 - IntroductionPMG Gabrovo - Web Development Level 0 - Introduction
PMG Gabrovo - Web Development Level 0 - Introduction
 
QA Challange Accepted - How and why we should use Behat?
QA Challange Accepted - How and why we should use Behat?QA Challange Accepted - How and why we should use Behat?
QA Challange Accepted - How and why we should use Behat?
 
DrupalCamp Sofia 2015
DrupalCamp Sofia 2015DrupalCamp Sofia 2015
DrupalCamp Sofia 2015
 
BDD, Behat & Drupal
BDD, Behat & DrupalBDD, Behat & Drupal
BDD, Behat & Drupal
 
Automation in Drupal
Automation in DrupalAutomation in Drupal
Automation in Drupal
 
Как да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходКак да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подход
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 

Introduction to PHP fundamentals including syntax, variables, functions and more

  • 2. Table of contents • What is PHP? • Syntax • Variables, variable types • Basic functions • Some predefined variables • Strings escaping • PHP – advantages and disadvantages
  • 5. • The PHP code starts with <?php and ends with ?>  Depending on server configuration may also start with <? (Short style) – but this is bad practice!  In terms of XML the <?php - ?> part is called "processing instruction" • PHP follows the Perl syntax  Simplified  Procedural (Now has OOP too)  Similar to C and Java
  • 6. • PHP Script contains one or more statements Statement are handed to the PHP Preprocessor one by one Each statement ends in semicolon ";" • Our first script contains only one statement: – call of the function print <?php print ("Hello PHP!"); // this is the statement ?>
  • 7. • PHP script can contain unlimited number of statements • Some function can be called without brackets • You can add comments to the code Starting with "//", "#" or block in "/*" and "*/" Only "/*" – "*/" can be used over several lines Comments are NOT executed <?php print "<div>"; print "Hello PHP!"; print "</div>"; ?>
  • 8. • Short opening tag <?= Forces the result of the expression to be printed to the browser Similar to print Allowed to omit ending ";" <html> <head><title>Hello world page</title></head> <body> <?="Hello PHP!" ?> </body> </html>
  • 10. • All variables in PHP start with $ (Perl style) • PHP is "type-less" language Variables are not linked with type – they can store value with different types No int a = 5; Just $a = 5; • Each variable is declared when it's first assigned value This leads to problems due to typing mistakes! The type of the value determines the type of the variable <?php // declare string variable $output $output = "<div>Hello PHP!</div>"; print $output; ?>
  • 11. • Possible PHP Variable Types are: Numeric (real or integer) • The decimal separator is dot ".", not comma "," Boolean (true or false) • PHP defines the constants as true, TRUE, True and false, FALSE, False • Empty string, zero and some other values are implicitly converted to "false" in boolean expressions – May cause problems when boolean not used properly
  • 12. • String values • Strings may be in single or double quotes • Start and end quote type should match • Difference between two types of quotes is the escape sequences <? $output1 = "Hello PHP!"; $output2 = 'Hello again!'; ?> $s = "dollars"; echo 'This costs a lot of $s.'; // This costs a lot of $s. echo "This costs a lot of $s."; // This costs a lot of dollars.
  • 13. • Arrays are aggregate values – combination of values, each assigned a key in the array PHP supports associative arrays – keys may be numeric, strings or any other scalar data types Keys must be unique across the array Values in the array may be with different types PHP Arrays are dynamic – they don’t require explicit size when created
  • 14. • PHP Array is declared with keyword array "=>" means "points to" If keys are not supplied they are assigned automatically, starting from 0 <? // simple array $arr = array ("a", "b", 7); // this produces $arr[0], $arr[1] and $arr[2] // whit values respectively "a", "b" and 7 $arr2 = array ("one" => 1, "two" => 2); // this produces $arr2["one"] and $arr2["two"] // whit values respectively 1 and 2 ?>
  • 15. • We access value in the array with "[" and "]" containing the key • Arrays are flexible and types of values and keys may be mixed <? $arr = array ("a", "b", 7, "one" => 1, "two" => 2, "other" => array(1,2,3)); // keys types may be mixed: // $arr[0] will be "a" and $arr["one"] will be 1 // $arr["other"] is also array // $arr["other"][0]" is 1 print $arr["other"][2]; // will output 3 ?>
  • 16. • In PHP there is special value (null) that means that the variable has no value – It is used to express the absence of any data type – Different from "undefined" variable! – Different from empty string or zero <? $null_variable = null; ?>
  • 17. • PHP supports "object" variable type Will be explained further in the OOP lecture • "Resource" variable type The resource type means the variable is holding reference to resource or data, external to your script • Example – opened file, database connection, etc
  • 18. • PHP expressions are similar to C "=" - assigning value to variable +, -, /, *, % - arithmetic operations ==, <=, >=, !=, <, > - comparison +=, -=, /=, *=, %=, ++, --, etc – prefix/postfix operators ( and ) – for expressions combining &, |, >>, <<, ^, ~ - bitwise operators
  • 19. • String operators "." (period) – string concatenating • ===, !== comparison • different from ==, != "10"==10 will produce true, while "10"===10 will produce false Strict comparison – $a === $b : TRUE if $a is equal to $b, and they are of the same type. Note: Assignment of value to variable returns as result the value being assigned We can have $a = $b = $c = 7;
  • 20. • In PHP constants are defined with the define function Cannot change value Doesn't start with $ Can hold any scalar value <? define ('CONSTANT_NAME', 123); // from here on CONSTANT_NAME will have value 123 print CONSTANT_NAME; // will output 123 ?>
  • 23. • We already know print Similar to print is echo print_r(array) – pints array with keys and values detailed • phpinfo() – Produces complete page containing information for the server, PHP settings, installed modules, etc <? echo "123"; // will output 123 to the browser ?>
  • 25. • PHP provides a lot predefined variables and constants __FILE__, __LINE__, __FUNCTION__, __METHOD__, __CLASS__ - contain debug info PHP_VERSION, PHP_OS, PHP_EOL, DIRECTORY_SEPARATOR, PHP_INT_SIZE and others are provided for easy creating cross- platform applications
  • 26. • $_SERVER – array, holding information from the web server – headers, paths and script locations DOCUMENT_ROOT – the root directory of the site in the web server configuration SERVER_ADDRESS, SERVER_NAME, SERVER_SOFTWARE, SERVER_PROTOCOL REMOTE_ADDR, REMOTE_HOST, REMOTE_PORT PHP_AUTH_USER, PHP_AUTH_PW, PHP_AUTH_DIGEST And others
  • 27. • $_GET, $_POST, $_COOKIE arrays hold the parameters from the URL, from the post data and from the cookies accordingly • $_FILES array holds information for successfully uploaded files over multipart post request • $_SESSION array holds the variables, stored in the session
  • 28. • PHP supports $$ syntax- variable variables The variable $str1 is evaluated as 'test' and so $$str1 is evaluated as $test <? $str1 = 'test'; $test = 'abc'; echo $$str1; // outputs abc ?>
  • 30. • Special chars in stings are escaped with backslashes (C style) The escape sequences for double quoted string: • n – new line (10 in ASCII) • r – carriage return (13 in ASCII) • t – horizontal tab • v – vertical tab • - backslash • $ - dollar sign • " – double quote $str1 = "this is "PHP"";
  • 31. • Single-quoted strings escape the same way Difference is that instead of " you need ' to escape the closing quotes No other escaping sequences will be expanded • In both single and double quoted strings, backslash before any other character will be printed too! $str1 = 'Arnold once said: "I'll be back"';
  • 32. • Double quoted strings offer something more: Variables in double-quoted strings are evaluated • Note on arrays: $saying = "I'll be back!"; $str1 = "Arnold once said: $saying"; // this will output: // Arnold once said: I'll be back! $sayings = array ('arni' => "I'll be back!"); $str1 = "Arnold once said: ${sayings['arni']}";
  • 34. • Advantages Easy to learn, open source, multiplatform and database support, extensions, community and commercial driven. Considered to be one of the fastest languages • Disadvantages Too loose syntax – risk tolerant, poor error handling, poor OOP (before version 6 a lot things are missing!)