SlideShare a Scribd company logo
Introduction to PHP Jussi Pohjolainen TAMK University of Applied Sciences
WEB PROGRAMMING CONCEPTS
Three-tiered Web Site: LAMP Client User-agent: Firefox Server Apache HTTP Server example request GET / HTTP/1.1 Host:  www.tamk.fi User-Agent: Mozilla/5.0 (Mac..) ... response Database MySQL PHP
Java EE Architecture (x)html / xml Applet Client Application J2EE Application Server Web Container Servlets JSP JSPs Servlets EJB Container RMI/IIOP JNDI JTA JDBC JMS JavaMail JAF Session   Beans Entity Beans Msg-Driven Beans RMI/IIOP JNDI JTA JDBC JMS JavaMai l JAF HTTP(S) JDBC JavaMail RMI IIOP JNDI JMS DB Java-Application CORBA Server Message Queue Directory Service Client Mail Server
Server Side Techniques Server side scripting requires installation on the server side Typically client siis only xhtml and it unaware that the xhtml was produced by a server side script Does not require any installations or add-ons  on the client
Server Side Techniques PHP Java EE: Servlet, JSP .NET CGI / Perl (Very old) Ruby …
Client Side Techniques Requires that the client supports the technique JavaScript, Applet, Flash…
Web Application Frameworks A web application framework is a software framework that is designed to support the development of dynamic websites, Web applications and Web services. Numerous frameworks available for many languages
Web App vs. Web Site? What’s the difference between Web App and Web Site? Rich Internet Application?, AJAX?, Thin Client? Full application running in your browser or just a web site?
PHP: HYPERTEXT PREPROCESSOR
Introduction to PHP PHP is a computer scripting language. Originally designed for producing dynamic web pages Appeared in 1995 PHP Group is responsible for the language, no formal specification Free software Runs on most operating systems and platforms URL: http://www.php.net
Response
Introduction to PHP Syntax PHP has quite easy syntax, if you are familiar with any c-type language It has all the same structures that you are familiar with other programming languages PHP is designed to output to browser, but it is possible to do also CLI apps.
Example <?php print &quot;What is your name?\n&quot;; $name = trim(fgets(STDIN)); print &quot;Hello &quot; . $name; ?>
Variables Variables in PHP are represented by a dollar sign PHP supports eight types: boolean, integer, float, double, array, object, resource and NULL
Example (php.net) <?php $a_bool = TRUE;  // a boolean $a_str  = &quot;foo&quot;;  // a string $a_str2 = 'foo';  // a string $an_int = 12;  // an integer echo gettype($a_bool); // prints out:  boolean echo gettype($a_str);  // prints out:  string // If this is an integer, increment it by four if (is_int($an_int)) { $an_int += 4; } // If $bool is a string, print it out // (does not print out anything) if (is_string($a_bool)) { echo &quot;String: $a_bool&quot;; } ?>
Naming Variables Case-sensitivity Start with letter or _ After that you can have numbers, letters and _ $var = 'Bob'; $Var = 'Joe'; print &quot;$var, $Var&quot;;      $4site = 'not yet';     $_4site = 'not yet';   
Constants You cannot alter the value of constant after declaration define(CONSTANT, &quot;value&quot;); print CONSTANT;
Magic Constants PHP has lot of predefined variables Also predefined constants: __LINE__ __FILE__ __FUNCTION__ __CLASS__ __METHOD__ See: http://fi.php.net/manual/en/language.constants.predefined.php
Scope <?php $a = &quot;Pekka&quot;; print ”My name is &quot; . $a; ?>
Scope <?php $a = &quot;Pekka&quot;; function Test() { print $a; } print ”My name is ”; Test(); ?>
Scope <?php $a = &quot;Pekka&quot;; function Test() { global $a; print $a; } print ”My name is ”; Test(); ?>
Control Structures If, else, elseif, switch while, do-while, for foreach break, continue
PHP BASICS
Strings Single quoted:  'this is a $variable' Double quoted:  &quot;this is a $variable&quot; Heredoc: $str = <<<EOD Example of string spanning multiple lines using heredoc syntax. EOD;
Modifying the String $mj = &quot;moi&quot;; print $mj[0]; $mj[0] = 'x'; print $mj; $mj = $mj . &quot; hei&quot;; print $mj; $mj .= &quot; terse&quot;; print $mj;
String functions A lot of functions… http://www.php.net/manual/en/ref.strings.php
Statements Every statement ends with ; $a = 5; $a = function(); $a = ($b = 5); $a++;  ++$a; $a += 3;
Operators Arithmethic: +,-,*,% Setting variable: = Bit: &, |, ^, ~, <<, >> Comparison: ==, ===, !=, !==, <, > <=, >=
Ternary Operator $variable = (1 < $x) ? 'value1' : 'value2'; Equals if(1 < $x) { $variable = 'value1'; } else { $variable = 'value1'; }
Execution Operator Execute command in shell $result = `ls -al`; print $result; Does the same than  shell_exec()  - function
Logical Operators $a and $b $a or $b $a xor $b !$a; $a && $b; $a || $b;
String Operators Two operators for strings: '.' and '.=' '.' – combining strings. '.=' – appends string to the end. Example: $v= &quot;Hello&quot; . $b; $v.= &quot;Hello&quot;;
Arrays See  http://php.tpu.fi/~pohjus/lectures/php/php-arrays.html
CONTROL STRUCTURES
IF <?php if ($a > $b) {     echo &quot;a is bigger than b&quot;; } else {     echo &quot;a is NOT bigger than b&quot;; } if ($a > $b) {     echo &quot;a is bigger than b&quot;; } elseif ($a == $b) {     echo &quot;a is equal to b&quot;; } else {     echo &quot;a is smaller than b&quot;; } ?>
While and Do-While <?php $a=0; while($a<10){ print $a; $a++; } $i = 0; do {     print $i; } while ($i > 0); ?>
For for ($i = 1; $i <= 10; $i++) {     print $i; }
Foreach $arr = array(1, 2, 3, 4); foreach ($arr as $value) {     echo $value; }
Switch switch ($i) { case 0:     echo &quot;i equals 0&quot;;     break; case 1:     echo &quot;i equals 1&quot;;     break; case 2:     echo &quot;i equals 2&quot;;     break; }
PHP COMBINED WITH XHTML
Response
Example: spaghetti-way <!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;> <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;> <head> <title>xhtml-doku</title> <meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /> </head> <body> <h1>Title</h1> <?php    print &quot;<p>Hello from PHP!</p>&quot;; ?> </body> </html>
Better ways Use functions Use OO
PHP AND USER INPUT
PHP and User Input via Forms See http://php.tpu.fi/~pohjus/lectures/php/forms-and-php.html
Ad

Recommended

Json
Json
krishnapriya Tadepalli
 
jQuery Ajax
jQuery Ajax
Anand Kumar Rajana
 
Php Presentation
Php Presentation
Manish Bothra
 
PHP FUNCTIONS
PHP FUNCTIONS
Zeeshan Ahmed
 
Php basics
Php basics
Jamshid Hashimi
 
JSON: The Basics
JSON: The Basics
Jeff Fox
 
Event In JavaScript
Event In JavaScript
ShahDhruv21
 
Php introduction
Php introduction
krishnapriya Tadepalli
 
Php.ppt
Php.ppt
Nidhi mishra
 
Web Development Course: PHP lecture 1
Web Development Course: PHP lecture 1
Gheyath M. Othman
 
PHP - Introduction to Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
Vibrant Technologies & Computers
 
Php
Php
Shyam Khant
 
PHP
PHP
Steve Fort
 
MYSQL - PHP Database Connectivity
MYSQL - PHP Database Connectivity
V.V.Vanniaperumal College for Women
 
Php mysql ppt
Php mysql ppt
Karmatechnologies Pvt. Ltd.
 
Introduction to XML
Introduction to XML
Jussi Pohjolainen
 
Web application architecture
Web application architecture
Tejaswini Deshpande
 
Php Lecture Notes
Php Lecture Notes
Santhiya Grace
 
Php tutorial(w3schools)
Php tutorial(w3schools)
Arjun Shanka
 
PHP-MySQL Database Connectivity Using XAMPP Server
PHP-MySQL Database Connectivity Using XAMPP Server
Rajiv Bhatia
 
Http
Http
NITT, KAMK
 
01 Php Introduction
01 Php Introduction
Geshan Manandhar
 
Operators in PHP
Operators in PHP
Vineet Kumar Saini
 
Asp.net.
Asp.net.
Naveen Sihag
 
Php and MySQL
Php and MySQL
Tiji Thomas
 
Php forms
Php forms
Anne Lee
 
HTML, CSS And JAVASCRIPT!
HTML, CSS And JAVASCRIPT!
Syahmi RH
 
Xampp installation
Xampp installation
Kichiemon Adachi
 
Php1
Php1
Keennary Pungyera
 
Web development
Web development
Seerat Bakhtawar
 

More Related Content

What's hot (20)

Php.ppt
Php.ppt
Nidhi mishra
 
Web Development Course: PHP lecture 1
Web Development Course: PHP lecture 1
Gheyath M. Othman
 
PHP - Introduction to Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
Vibrant Technologies & Computers
 
Php
Php
Shyam Khant
 
PHP
PHP
Steve Fort
 
MYSQL - PHP Database Connectivity
MYSQL - PHP Database Connectivity
V.V.Vanniaperumal College for Women
 
Php mysql ppt
Php mysql ppt
Karmatechnologies Pvt. Ltd.
 
Introduction to XML
Introduction to XML
Jussi Pohjolainen
 
Web application architecture
Web application architecture
Tejaswini Deshpande
 
Php Lecture Notes
Php Lecture Notes
Santhiya Grace
 
Php tutorial(w3schools)
Php tutorial(w3schools)
Arjun Shanka
 
PHP-MySQL Database Connectivity Using XAMPP Server
PHP-MySQL Database Connectivity Using XAMPP Server
Rajiv Bhatia
 
Http
Http
NITT, KAMK
 
01 Php Introduction
01 Php Introduction
Geshan Manandhar
 
Operators in PHP
Operators in PHP
Vineet Kumar Saini
 
Asp.net.
Asp.net.
Naveen Sihag
 
Php and MySQL
Php and MySQL
Tiji Thomas
 
Php forms
Php forms
Anne Lee
 
HTML, CSS And JAVASCRIPT!
HTML, CSS And JAVASCRIPT!
Syahmi RH
 
Xampp installation
Xampp installation
Kichiemon Adachi
 

Similar to Introduction to PHP (20)

Php1
Php1
Keennary Pungyera
 
Web development
Web development
Seerat Bakhtawar
 
Internet Technology and its Applications
Internet Technology and its Applications
amichoksi
 
What Is Php
What Is Php
AVC
 
Introduction To Php For Wit2009
Introduction To Php For Wit2009
cwarren
 
Php Crash Course
Php Crash Course
mussawir20
 
php basics
php basics
NIRMAL FELIX
 
PHP MySQL
PHP MySQL
Md. Sirajus Salayhin
 
Open Source Package Php Mysql 1228203701094763 9
Open Source Package Php Mysql 1228203701094763 9
isadorta
 
Open Source Package PHP & MySQL
Open Source Package PHP & MySQL
kalaisai
 
PHP
PHP
webhostingguy
 
P H P Part I, By Kian
P H P Part I, By Kian
phelios
 
Phpwebdevelping
Phpwebdevelping
mohamed ashraf
 
Php Learning show
Php Learning show
Gnugroup India
 
Introduction To Lamp
Introduction To Lamp
Amzad Hossain
 
Php Training
Php Training
adfa
 
PHP
PHP
sometech
 
Introduction to php
Introduction to php
KIRAN KUMAR SILIVERI
 
Introduction to php
Introduction to php
mohamed ashraf
 
PHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with this
Ian Macali
 
Internet Technology and its Applications
Internet Technology and its Applications
amichoksi
 
What Is Php
What Is Php
AVC
 
Introduction To Php For Wit2009
Introduction To Php For Wit2009
cwarren
 
Php Crash Course
Php Crash Course
mussawir20
 
Open Source Package Php Mysql 1228203701094763 9
Open Source Package Php Mysql 1228203701094763 9
isadorta
 
Open Source Package PHP & MySQL
Open Source Package PHP & MySQL
kalaisai
 
P H P Part I, By Kian
P H P Part I, By Kian
phelios
 
Introduction To Lamp
Introduction To Lamp
Amzad Hossain
 
Php Training
Php Training
adfa
 
PHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with this
Ian Macali
 
Ad

More from Jussi Pohjolainen (20)

Moved to Speakerdeck
Moved to Speakerdeck
Jussi Pohjolainen
 
Java Web Services
Java Web Services
Jussi Pohjolainen
 
Box2D and libGDX
Box2D and libGDX
Jussi Pohjolainen
 
libGDX: Screens, Fonts and Preferences
libGDX: Screens, Fonts and Preferences
Jussi Pohjolainen
 
libGDX: Tiled Maps
libGDX: Tiled Maps
Jussi Pohjolainen
 
libGDX: User Input and Frame by Frame Animation
libGDX: User Input and Frame by Frame Animation
Jussi Pohjolainen
 
Intro to Building Android Games using libGDX
Intro to Building Android Games using libGDX
Jussi Pohjolainen
 
Advanced JavaScript Development
Advanced JavaScript Development
Jussi Pohjolainen
 
Introduction to JavaScript
Introduction to JavaScript
Jussi Pohjolainen
 
Introduction to AngularJS
Introduction to AngularJS
Jussi Pohjolainen
 
libGDX: Scene2D
libGDX: Scene2D
Jussi Pohjolainen
 
libGDX: Simple Frame Animation
libGDX: Simple Frame Animation
Jussi Pohjolainen
 
libGDX: Simple Frame Animation
libGDX: Simple Frame Animation
Jussi Pohjolainen
 
libGDX: User Input
libGDX: User Input
Jussi Pohjolainen
 
Implementing a Simple Game using libGDX
Implementing a Simple Game using libGDX
Jussi Pohjolainen
 
Building Android games using LibGDX
Building Android games using LibGDX
Jussi Pohjolainen
 
Android Threading
Android Threading
Jussi Pohjolainen
 
Creating Asha Games: Game Pausing, Orientation, Sensors and Gestures
Creating Asha Games: Game Pausing, Orientation, Sensors and Gestures
Jussi Pohjolainen
 
Creating Games for Asha - platform
Creating Games for Asha - platform
Jussi Pohjolainen
 
Intro to Asha UI
Intro to Asha UI
Jussi Pohjolainen
 
libGDX: Screens, Fonts and Preferences
libGDX: Screens, Fonts and Preferences
Jussi Pohjolainen
 
libGDX: User Input and Frame by Frame Animation
libGDX: User Input and Frame by Frame Animation
Jussi Pohjolainen
 
Intro to Building Android Games using libGDX
Intro to Building Android Games using libGDX
Jussi Pohjolainen
 
Advanced JavaScript Development
Advanced JavaScript Development
Jussi Pohjolainen
 
libGDX: Simple Frame Animation
libGDX: Simple Frame Animation
Jussi Pohjolainen
 
libGDX: Simple Frame Animation
libGDX: Simple Frame Animation
Jussi Pohjolainen
 
Implementing a Simple Game using libGDX
Implementing a Simple Game using libGDX
Jussi Pohjolainen
 
Building Android games using LibGDX
Building Android games using LibGDX
Jussi Pohjolainen
 
Creating Asha Games: Game Pausing, Orientation, Sensors and Gestures
Creating Asha Games: Game Pausing, Orientation, Sensors and Gestures
Jussi Pohjolainen
 
Creating Games for Asha - platform
Creating Games for Asha - platform
Jussi Pohjolainen
 
Ad

Recently uploaded (20)

Paper 108 | Thoreau’s Influence on Gandhi: The Evolution of Civil Disobedience
Paper 108 | Thoreau’s Influence on Gandhi: The Evolution of Civil Disobedience
Rajdeep Bavaliya
 
ECONOMICS, DISASTER MANAGEMENT, ROAD SAFETY - STUDY MATERIAL [10TH]
ECONOMICS, DISASTER MANAGEMENT, ROAD SAFETY - STUDY MATERIAL [10TH]
SHERAZ AHMAD LONE
 
Wax Moon, Richmond, VA. Terrence McPherson
Wax Moon, Richmond, VA. Terrence McPherson
TerrenceMcPherson1
 
Chalukyas of Gujrat, Solanki Dynasty NEP.pptx
Chalukyas of Gujrat, Solanki Dynasty NEP.pptx
Dr. Ravi Shankar Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Rajdeep Bavaliya
 
PEST OF WHEAT SORGHUM BAJRA and MINOR MILLETS.pptx
PEST OF WHEAT SORGHUM BAJRA and MINOR MILLETS.pptx
Arshad Shaikh
 
Introduction to problem solving Techniques
Introduction to problem solving Techniques
merlinjohnsy
 
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
TechSoup
 
LDMMIA Practitioner Level Orientation Updates
LDMMIA Practitioner Level Orientation Updates
LDM & Mia eStudios
 
Sustainable Innovation with Immersive Learning
Sustainable Innovation with Immersive Learning
Leonel Morgado
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 6-14-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 6-14-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Restu Bias Primandhika
 
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
ChristinaFortunova
 
BINARY files CSV files JSON files with example.pptx
BINARY files CSV files JSON files with example.pptx
Ramakrishna Reddy Bijjam
 
Pests of Maize: An comprehensive overview.pptx
Pests of Maize: An comprehensive overview.pptx
Arshad Shaikh
 
This is why students from these 44 institutions have not received National Se...
This is why students from these 44 institutions have not received National Se...
Kweku Zurek
 
Battle of Bookworms 2025 - U25 Literature Quiz by Pragya
Battle of Bookworms 2025 - U25 Literature Quiz by Pragya
Pragya - UEM Kolkata Quiz Club
 
Q1_ENGLISH_PPT_WEEK 1 power point grade 3 Quarter 1 week 1
Q1_ENGLISH_PPT_WEEK 1 power point grade 3 Quarter 1 week 1
jutaydeonne
 
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
Belicia R.S
 
Revista digital preescolar en transformación
Revista digital preescolar en transformación
guerragallardo26
 
Paper 108 | Thoreau’s Influence on Gandhi: The Evolution of Civil Disobedience
Paper 108 | Thoreau’s Influence on Gandhi: The Evolution of Civil Disobedience
Rajdeep Bavaliya
 
ECONOMICS, DISASTER MANAGEMENT, ROAD SAFETY - STUDY MATERIAL [10TH]
ECONOMICS, DISASTER MANAGEMENT, ROAD SAFETY - STUDY MATERIAL [10TH]
SHERAZ AHMAD LONE
 
Wax Moon, Richmond, VA. Terrence McPherson
Wax Moon, Richmond, VA. Terrence McPherson
TerrenceMcPherson1
 
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Rajdeep Bavaliya
 
PEST OF WHEAT SORGHUM BAJRA and MINOR MILLETS.pptx
PEST OF WHEAT SORGHUM BAJRA and MINOR MILLETS.pptx
Arshad Shaikh
 
Introduction to problem solving Techniques
Introduction to problem solving Techniques
merlinjohnsy
 
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
TechSoup
 
LDMMIA Practitioner Level Orientation Updates
LDMMIA Practitioner Level Orientation Updates
LDM & Mia eStudios
 
Sustainable Innovation with Immersive Learning
Sustainable Innovation with Immersive Learning
Leonel Morgado
 
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Restu Bias Primandhika
 
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
ChristinaFortunova
 
BINARY files CSV files JSON files with example.pptx
BINARY files CSV files JSON files with example.pptx
Ramakrishna Reddy Bijjam
 
Pests of Maize: An comprehensive overview.pptx
Pests of Maize: An comprehensive overview.pptx
Arshad Shaikh
 
This is why students from these 44 institutions have not received National Se...
This is why students from these 44 institutions have not received National Se...
Kweku Zurek
 
Battle of Bookworms 2025 - U25 Literature Quiz by Pragya
Battle of Bookworms 2025 - U25 Literature Quiz by Pragya
Pragya - UEM Kolkata Quiz Club
 
Q1_ENGLISH_PPT_WEEK 1 power point grade 3 Quarter 1 week 1
Q1_ENGLISH_PPT_WEEK 1 power point grade 3 Quarter 1 week 1
jutaydeonne
 
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
Belicia R.S
 
Revista digital preescolar en transformación
Revista digital preescolar en transformación
guerragallardo26
 

Introduction to PHP

  • 1. Introduction to PHP Jussi Pohjolainen TAMK University of Applied Sciences
  • 3. Three-tiered Web Site: LAMP Client User-agent: Firefox Server Apache HTTP Server example request GET / HTTP/1.1 Host: www.tamk.fi User-Agent: Mozilla/5.0 (Mac..) ... response Database MySQL PHP
  • 4. Java EE Architecture (x)html / xml Applet Client Application J2EE Application Server Web Container Servlets JSP JSPs Servlets EJB Container RMI/IIOP JNDI JTA JDBC JMS JavaMail JAF Session Beans Entity Beans Msg-Driven Beans RMI/IIOP JNDI JTA JDBC JMS JavaMai l JAF HTTP(S) JDBC JavaMail RMI IIOP JNDI JMS DB Java-Application CORBA Server Message Queue Directory Service Client Mail Server
  • 5. Server Side Techniques Server side scripting requires installation on the server side Typically client siis only xhtml and it unaware that the xhtml was produced by a server side script Does not require any installations or add-ons on the client
  • 6. Server Side Techniques PHP Java EE: Servlet, JSP .NET CGI / Perl (Very old) Ruby …
  • 7. Client Side Techniques Requires that the client supports the technique JavaScript, Applet, Flash…
  • 8. Web Application Frameworks A web application framework is a software framework that is designed to support the development of dynamic websites, Web applications and Web services. Numerous frameworks available for many languages
  • 9. Web App vs. Web Site? What’s the difference between Web App and Web Site? Rich Internet Application?, AJAX?, Thin Client? Full application running in your browser or just a web site?
  • 11. Introduction to PHP PHP is a computer scripting language. Originally designed for producing dynamic web pages Appeared in 1995 PHP Group is responsible for the language, no formal specification Free software Runs on most operating systems and platforms URL: http://www.php.net
  • 13. Introduction to PHP Syntax PHP has quite easy syntax, if you are familiar with any c-type language It has all the same structures that you are familiar with other programming languages PHP is designed to output to browser, but it is possible to do also CLI apps.
  • 14. Example <?php print &quot;What is your name?\n&quot;; $name = trim(fgets(STDIN)); print &quot;Hello &quot; . $name; ?>
  • 15. Variables Variables in PHP are represented by a dollar sign PHP supports eight types: boolean, integer, float, double, array, object, resource and NULL
  • 16. Example (php.net) <?php $a_bool = TRUE; // a boolean $a_str = &quot;foo&quot;; // a string $a_str2 = 'foo'; // a string $an_int = 12; // an integer echo gettype($a_bool); // prints out: boolean echo gettype($a_str); // prints out: string // If this is an integer, increment it by four if (is_int($an_int)) { $an_int += 4; } // If $bool is a string, print it out // (does not print out anything) if (is_string($a_bool)) { echo &quot;String: $a_bool&quot;; } ?>
  • 17. Naming Variables Case-sensitivity Start with letter or _ After that you can have numbers, letters and _ $var = 'Bob'; $Var = 'Joe'; print &quot;$var, $Var&quot;;      $4site = 'not yet';    $_4site = 'not yet';   
  • 18. Constants You cannot alter the value of constant after declaration define(CONSTANT, &quot;value&quot;); print CONSTANT;
  • 19. Magic Constants PHP has lot of predefined variables Also predefined constants: __LINE__ __FILE__ __FUNCTION__ __CLASS__ __METHOD__ See: http://fi.php.net/manual/en/language.constants.predefined.php
  • 20. Scope <?php $a = &quot;Pekka&quot;; print ”My name is &quot; . $a; ?>
  • 21. Scope <?php $a = &quot;Pekka&quot;; function Test() { print $a; } print ”My name is ”; Test(); ?>
  • 22. Scope <?php $a = &quot;Pekka&quot;; function Test() { global $a; print $a; } print ”My name is ”; Test(); ?>
  • 23. Control Structures If, else, elseif, switch while, do-while, for foreach break, continue
  • 25. Strings Single quoted: 'this is a $variable' Double quoted: &quot;this is a $variable&quot; Heredoc: $str = <<<EOD Example of string spanning multiple lines using heredoc syntax. EOD;
  • 26. Modifying the String $mj = &quot;moi&quot;; print $mj[0]; $mj[0] = 'x'; print $mj; $mj = $mj . &quot; hei&quot;; print $mj; $mj .= &quot; terse&quot;; print $mj;
  • 27. String functions A lot of functions… http://www.php.net/manual/en/ref.strings.php
  • 28. Statements Every statement ends with ; $a = 5; $a = function(); $a = ($b = 5); $a++; ++$a; $a += 3;
  • 29. Operators Arithmethic: +,-,*,% Setting variable: = Bit: &, |, ^, ~, <<, >> Comparison: ==, ===, !=, !==, <, > <=, >=
  • 30. Ternary Operator $variable = (1 < $x) ? 'value1' : 'value2'; Equals if(1 < $x) { $variable = 'value1'; } else { $variable = 'value1'; }
  • 31. Execution Operator Execute command in shell $result = `ls -al`; print $result; Does the same than shell_exec() - function
  • 32. Logical Operators $a and $b $a or $b $a xor $b !$a; $a && $b; $a || $b;
  • 33. String Operators Two operators for strings: '.' and '.=' '.' – combining strings. '.=' – appends string to the end. Example: $v= &quot;Hello&quot; . $b; $v.= &quot;Hello&quot;;
  • 34. Arrays See http://php.tpu.fi/~pohjus/lectures/php/php-arrays.html
  • 36. IF <?php if ($a > $b) {    echo &quot;a is bigger than b&quot;; } else {    echo &quot;a is NOT bigger than b&quot;; } if ($a > $b) {    echo &quot;a is bigger than b&quot;; } elseif ($a == $b) {    echo &quot;a is equal to b&quot;; } else {    echo &quot;a is smaller than b&quot;; } ?>
  • 37. While and Do-While <?php $a=0; while($a<10){ print $a; $a++; } $i = 0; do {    print $i; } while ($i > 0); ?>
  • 38. For for ($i = 1; $i <= 10; $i++) {    print $i; }
  • 39. Foreach $arr = array(1, 2, 3, 4); foreach ($arr as $value) {    echo $value; }
  • 40. Switch switch ($i) { case 0:    echo &quot;i equals 0&quot;;    break; case 1:    echo &quot;i equals 1&quot;;    break; case 2:    echo &quot;i equals 2&quot;;    break; }
  • 43. Example: spaghetti-way <!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;> <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;> <head> <title>xhtml-doku</title> <meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /> </head> <body> <h1>Title</h1> <?php print &quot;<p>Hello from PHP!</p>&quot;; ?> </body> </html>
  • 44. Better ways Use functions Use OO
  • 45. PHP AND USER INPUT
  • 46. PHP and User Input via Forms See http://php.tpu.fi/~pohjus/lectures/php/forms-and-php.html