SlideShare a Scribd company logo
Basic PHP
Syntax
ARRAYS
STRINGS AND REGULAR
EXPRESSIONS
1
CS380 2
Arrays
Append: use bracket notation without specifying an index
Element type is not specified; can mix types
$name = array(); # create
$name = array(value0, value1, ..., valueN);
$name[index] # get element value
$name[index] = value; # set element value
$name[] = value; # append
PHP
$a = array(); # empty array (length 0)
$a[0] = 23; # stores 23 at index 0 (length 1)
$a2 = array("some", "strings", "in", "an", "array");
$a2[] = "Ooh!"; # add string to end (at index 5)
PHP
3
Array functions
function name(s) description
count number of elements in the array
print_r print array's contents
array_pop, array_push,
array_shift, array_unshift
using array as a stack/queue
in_array, array_search,
array_reverse,
sort, rsort, shuffle
searching and reordering
array_fill, array_merge,
array_intersect,
array_diff, array_slice, range
creating, filling, filtering
array_sum, array_product,
array_unique,
array_filter, array_reduce
processing elements
CS380 4
Array function example
the array in PHP replaces many other collections in Java
◦ list, stack, queue, set, map, ...
$tas = array("MD", "BH", "KK", "HM", "JP");
for ($i = 0; $i < count($tas); $i++) {
$tas[$i] = strtolower($tas[$i]);
}
$morgan = array_shift($tas);
array_pop($tas);
array_push($tas, "ms");
array_reverse($tas);
sort($tas);
$best = array_slice($tas, 1, 2);
PHP
CS380 5
foreach loop
foreach ($array as $variableName) {
...
}
PHP
$fellowship = array(“Frodo", “Sam", “Gandalf",
“Strider", “Gimli", “Legolas", “Boromir");
print “The fellowship of the ring members are: n";
for ($i = 0; $i < count($fellowship); $i++) {
print "{$fellowship[$i]}n";
}
print “The fellowship of the ring members are: n";
foreach ($fellowship as $fellow) {
print "$fellown";
}
PHP
CS380 6
Multidimensional Arrays
<?php $AmazonProducts = array( array(“BOOK",
"Books", 50),
array("DVDs",
“Movies", 15),
array(“CDs", “Music",
20)
);
for ($row = 0; $row < 3; $row++) {
for ($column = 0; $column < 3; $column++) { ?>
<p> | <?= $AmazonProducts[$row]
[$column] ?>
<?php } ?>
</p>
<?php } ?>
PHP
CS380 7
Multidimensional Arrays
(cont.)
<?php $AmazonProducts = array( array(“Code” =>“BOOK",
“Description” => "Books", “Price” => 50),
array(“Code” => "DVDs",
“Description” => “Movies", “Price” => 15),
array(“Code” => “CDs",
“Description” => “Music", “Price” => 20)
);
for ($row = 0; $row < 3; $row++) { ?>
<p> | <?= $AmazonProducts[$row][“Code”] ?> | <?=
$AmazonProducts[$row][“Description”] ?> | <?=
$AmazonProducts[$row][“Price”] ?>
</p>
<?php } ?>
PHP
8
String compare functions
Comparison can be:
◦ Partial matches
◦ Others
Variations with non case sensitive functions
◦ strcasecmp
Name Function
strcmp compareTo
strstr, strchr find string/char within a string
strpos find numerical position of
string
str_replace, substr_replace replace string
CS380 9
String compare functions
examples
$offensive = array( offensive word1, offensive
word2);
$feedback = str_replace($offcolor, “%!@*”,
$feedback);
PHP
$test = “Hello World! n”;
print strpos($test, “o”);
print strpos($test, “o”, 5);
PHP
$toaddress = “feedback@example.com”;
if(strstr($feedback, “shop”)
$toaddress = “shop@example.com”;
else if(strstr($feedback, “delivery”)
$toaddress = “fulfillment@example.com”;
PHP
CS380 10
Regular expressions
Regular expression: a pattern in a piece of text
PHP has:
◦ POSIX
◦ Perl regular expressions
[a-z]at #cat, rat, bat…
[aeiou]
[a-zA-Z]
[^a-z] #not a-z
[[:alnum:]]+ #at least one alphanumeric char
(very) *large #large, very very very large…
(very){1, 3} #counting “very” up to 3
^bob #bob at the beginning
com$ #com at the end
PHPRegExp
CS380 11
Embedded PHP
12
Printing HTML tags in PHP =
bad style
best PHP style is to minimize print/echo statements in embedded PHP code
but without print, how do we insert dynamic content into the page?
<?php
print "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.1//EN"n";
print " "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
n";
print "<html xmlns="http://www.w3.org/1999/xhtml">n";
print " <head>n";
print " <title>Geneva's web page</title>n";
...
for ($i = 1; $i <= 10; $i++) {
print "<p> I can count to $i! </p>n";
}
?>
HTML
CS380 13
PHP expression blocks
PHP expression block: a small piece of PHP that evaluates and
embeds an expression's value into HTML
◦ <?= expression ?> is equivalent to:
<?= expression ?>
PHP
<h2> The answer is <?= 6 * 7 ?> </h2>
PHP
The answer is 42
output
<?php print expression; ?>
PHP
14
Expression block example
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>CSE 190 M: Embedded PHP</title></head>
<body>
<?php
for ($i = 99; $i >= 1; $i--) {
?>
<p> <?= $i ?> bottles of beer on the wall, <br />
<?= $i ?> bottles of beer. <br />
Take one down, pass it around, <br />
<?= $i - 1 ?> bottles of beer on the wall. </p>
<?php
}
?>
</body>
</html> PHP
CS380 15
Common errors: unclosed
braces, missing = sign
if you forget to close your braces, you'll see an error about 'unexpected $end'
if you forget = in <?=, the expression does not produce any output
...
<body>
<p>Watch how high I can count:
<?php
for ($i = 1; $i <= 10; $i++) {
?>
<? $i ?>
</p>
</body>
</html> PHP
CS380 16
Complex expression blocks
...
<body>
<?php
for ($i = 1; $i <= 3; $i++) {
?>
<h<?= $i ?>>This is a level <?= $i ?>
heading.</h<?= $i ?>>
<?php
}
?>
</body> PHP
This is a level 1 heading.
This is a level 2 heading.
This is a level 3 heading. output
CS380 17
Advanced PHP
Syntax
FUNCTIONS
CS380 18
Functions
parameter types and return types are not written
a function with no return statements implicitly returns NULL
function name(parameterName, ..., parameterName) {
statements;
} PHP
function quadratic($a, $b, $c) {
return -$b + sqrt($b * $b - 4 * $a * $c) / (2
* $a);
} PHP
CS380 19
Default Parameter Values
if no value is passed, the default will be used
function print_separated($str, $separator = ", ") {
if (strlen($str) > 0) {
print $str[0];
for ($i = 1; $i < strlen($str); $i++) {
print $separator . $str[$i];
}
}
} PHP
print_separated("hello"); # h, e, l, l, o
print_separated("hello", "-"); # h-e-l-l-o
PHP
CS380 20
PHP Arrays Ex. 1
Arrays allow you to assign multiple values to one variable. For
this PHP exercise, write an array variable of weather conditions
with the following values: rain, sunshine, clouds, hail, sleet,
snow, wind. Using the array variable for all the weather
conditions, echo the following statement to the browser:
We've seen all kinds of weather this month. At the beginning of
the month, we had snow and wind. Then came sunshine with a
few clouds and some rain. At least we didn't get any hail or
sleet.
Don't forget to include a title for your page, both in the header
and on the page itself.
CS380 21
PHP Arrays Ex. 2
For this exercise, you will use a list of ten of the largest cities
in the world. (Please note, these are not the ten largest, just a
selection of ten from the largest cities.) Create an array with
the following values: Tokyo, Mexico City, New York City,
Mumbai, Seoul, Shanghai, Lagos, Buenos Aires, Cairo, London.
Print these values to the browser separated by commas, using
a loop to iterate over the array. Sort the array, then print the
values to the browser in an unordered list, again using a loop.
Add the following cities to the array: Los Angeles, Calcutta,
Osaka, Beijing. Sort the array again, and print it once more to
the browser in an unordered list.

More Related Content

Similar to Php Syntax Basics in one single course in nutshell (20)

PPTX
PHPneweeeeeeeeeeeeeeeeeeeeeeeeeeeeee.pptx
kamalsmail1
 
PPTX
Php
Richa Goel
 
PPT
PHP - Introduction to PHP - Mazenet Solution
Mazenetsolution
 
PDF
lab4_php
tutorialsruby
 
PDF
lab4_php
tutorialsruby
 
PPT
Php(report)
Yhannah
 
PPT
PHP and MySQL with snapshots
richambra
 
PPTX
08 php-files
hoangphuc2587
 
PDF
Zend Certification Preparation Tutorial
Lorna Mitchell
 
PDF
Php Tutorials for Beginners
Vineet Kumar Saini
 
PDF
php AND MYSQL _ppt.pdf
SVN Polytechnic Kalan Sultanpur UP
 
PPT
PHP complete reference with database concepts for beginners
Mohammed Mushtaq Ahmed
 
PPTX
Php by shivitomer
Shivi Tomer
 
PDF
PHP Tips & Tricks
Radek Benkel
 
PDF
07 Introduction to PHP #burningkeyboards
Denis Ristic
 
PPTX
Php
Yoga Raja
 
PPT
PHP-01-Overview.pptfreeforeveryonecomenow
oliverrobertjames
 
PPT
PHP - Web Development
Niladri Karmakar
 
PPTX
introduction to server-side scripting
Amirul Shafeeq
 
PHPneweeeeeeeeeeeeeeeeeeeeeeeeeeeeee.pptx
kamalsmail1
 
PHP - Introduction to PHP - Mazenet Solution
Mazenetsolution
 
lab4_php
tutorialsruby
 
lab4_php
tutorialsruby
 
Php(report)
Yhannah
 
PHP and MySQL with snapshots
richambra
 
08 php-files
hoangphuc2587
 
Zend Certification Preparation Tutorial
Lorna Mitchell
 
Php Tutorials for Beginners
Vineet Kumar Saini
 
php AND MYSQL _ppt.pdf
SVN Polytechnic Kalan Sultanpur UP
 
PHP complete reference with database concepts for beginners
Mohammed Mushtaq Ahmed
 
Php by shivitomer
Shivi Tomer
 
PHP Tips & Tricks
Radek Benkel
 
07 Introduction to PHP #burningkeyboards
Denis Ristic
 
PHP-01-Overview.pptfreeforeveryonecomenow
oliverrobertjames
 
PHP - Web Development
Niladri Karmakar
 
introduction to server-side scripting
Amirul Shafeeq
 

Recently uploaded (20)

PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
July Patch Tuesday
Ivanti
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
July Patch Tuesday
Ivanti
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Ad

Php Syntax Basics in one single course in nutshell

  • 1. Basic PHP Syntax ARRAYS STRINGS AND REGULAR EXPRESSIONS 1
  • 2. CS380 2 Arrays Append: use bracket notation without specifying an index Element type is not specified; can mix types $name = array(); # create $name = array(value0, value1, ..., valueN); $name[index] # get element value $name[index] = value; # set element value $name[] = value; # append PHP $a = array(); # empty array (length 0) $a[0] = 23; # stores 23 at index 0 (length 1) $a2 = array("some", "strings", "in", "an", "array"); $a2[] = "Ooh!"; # add string to end (at index 5) PHP
  • 3. 3 Array functions function name(s) description count number of elements in the array print_r print array's contents array_pop, array_push, array_shift, array_unshift using array as a stack/queue in_array, array_search, array_reverse, sort, rsort, shuffle searching and reordering array_fill, array_merge, array_intersect, array_diff, array_slice, range creating, filling, filtering array_sum, array_product, array_unique, array_filter, array_reduce processing elements
  • 4. CS380 4 Array function example the array in PHP replaces many other collections in Java ◦ list, stack, queue, set, map, ... $tas = array("MD", "BH", "KK", "HM", "JP"); for ($i = 0; $i < count($tas); $i++) { $tas[$i] = strtolower($tas[$i]); } $morgan = array_shift($tas); array_pop($tas); array_push($tas, "ms"); array_reverse($tas); sort($tas); $best = array_slice($tas, 1, 2); PHP
  • 5. CS380 5 foreach loop foreach ($array as $variableName) { ... } PHP $fellowship = array(“Frodo", “Sam", “Gandalf", “Strider", “Gimli", “Legolas", “Boromir"); print “The fellowship of the ring members are: n"; for ($i = 0; $i < count($fellowship); $i++) { print "{$fellowship[$i]}n"; } print “The fellowship of the ring members are: n"; foreach ($fellowship as $fellow) { print "$fellown"; } PHP
  • 6. CS380 6 Multidimensional Arrays <?php $AmazonProducts = array( array(“BOOK", "Books", 50), array("DVDs", “Movies", 15), array(“CDs", “Music", 20) ); for ($row = 0; $row < 3; $row++) { for ($column = 0; $column < 3; $column++) { ?> <p> | <?= $AmazonProducts[$row] [$column] ?> <?php } ?> </p> <?php } ?> PHP
  • 7. CS380 7 Multidimensional Arrays (cont.) <?php $AmazonProducts = array( array(“Code” =>“BOOK", “Description” => "Books", “Price” => 50), array(“Code” => "DVDs", “Description” => “Movies", “Price” => 15), array(“Code” => “CDs", “Description” => “Music", “Price” => 20) ); for ($row = 0; $row < 3; $row++) { ?> <p> | <?= $AmazonProducts[$row][“Code”] ?> | <?= $AmazonProducts[$row][“Description”] ?> | <?= $AmazonProducts[$row][“Price”] ?> </p> <?php } ?> PHP
  • 8. 8 String compare functions Comparison can be: ◦ Partial matches ◦ Others Variations with non case sensitive functions ◦ strcasecmp Name Function strcmp compareTo strstr, strchr find string/char within a string strpos find numerical position of string str_replace, substr_replace replace string
  • 9. CS380 9 String compare functions examples $offensive = array( offensive word1, offensive word2); $feedback = str_replace($offcolor, “%!@*”, $feedback); PHP $test = “Hello World! n”; print strpos($test, “o”); print strpos($test, “o”, 5); PHP $toaddress = “[email protected]”; if(strstr($feedback, “shop”) $toaddress = “[email protected]”; else if(strstr($feedback, “delivery”) $toaddress = “[email protected]”; PHP
  • 10. CS380 10 Regular expressions Regular expression: a pattern in a piece of text PHP has: ◦ POSIX ◦ Perl regular expressions [a-z]at #cat, rat, bat… [aeiou] [a-zA-Z] [^a-z] #not a-z [[:alnum:]]+ #at least one alphanumeric char (very) *large #large, very very very large… (very){1, 3} #counting “very” up to 3 ^bob #bob at the beginning com$ #com at the end PHPRegExp
  • 12. 12 Printing HTML tags in PHP = bad style best PHP style is to minimize print/echo statements in embedded PHP code but without print, how do we insert dynamic content into the page? <?php print "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"n"; print " "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> n"; print "<html xmlns="http://www.w3.org/1999/xhtml">n"; print " <head>n"; print " <title>Geneva's web page</title>n"; ... for ($i = 1; $i <= 10; $i++) { print "<p> I can count to $i! </p>n"; } ?> HTML
  • 13. CS380 13 PHP expression blocks PHP expression block: a small piece of PHP that evaluates and embeds an expression's value into HTML ◦ <?= expression ?> is equivalent to: <?= expression ?> PHP <h2> The answer is <?= 6 * 7 ?> </h2> PHP The answer is 42 output <?php print expression; ?> PHP
  • 14. 14 Expression block example <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>CSE 190 M: Embedded PHP</title></head> <body> <?php for ($i = 99; $i >= 1; $i--) { ?> <p> <?= $i ?> bottles of beer on the wall, <br /> <?= $i ?> bottles of beer. <br /> Take one down, pass it around, <br /> <?= $i - 1 ?> bottles of beer on the wall. </p> <?php } ?> </body> </html> PHP
  • 15. CS380 15 Common errors: unclosed braces, missing = sign if you forget to close your braces, you'll see an error about 'unexpected $end' if you forget = in <?=, the expression does not produce any output ... <body> <p>Watch how high I can count: <?php for ($i = 1; $i <= 10; $i++) { ?> <? $i ?> </p> </body> </html> PHP
  • 16. CS380 16 Complex expression blocks ... <body> <?php for ($i = 1; $i <= 3; $i++) { ?> <h<?= $i ?>>This is a level <?= $i ?> heading.</h<?= $i ?>> <?php } ?> </body> PHP This is a level 1 heading. This is a level 2 heading. This is a level 3 heading. output
  • 18. CS380 18 Functions parameter types and return types are not written a function with no return statements implicitly returns NULL function name(parameterName, ..., parameterName) { statements; } PHP function quadratic($a, $b, $c) { return -$b + sqrt($b * $b - 4 * $a * $c) / (2 * $a); } PHP
  • 19. CS380 19 Default Parameter Values if no value is passed, the default will be used function print_separated($str, $separator = ", ") { if (strlen($str) > 0) { print $str[0]; for ($i = 1; $i < strlen($str); $i++) { print $separator . $str[$i]; } } } PHP print_separated("hello"); # h, e, l, l, o print_separated("hello", "-"); # h-e-l-l-o PHP
  • 20. CS380 20 PHP Arrays Ex. 1 Arrays allow you to assign multiple values to one variable. For this PHP exercise, write an array variable of weather conditions with the following values: rain, sunshine, clouds, hail, sleet, snow, wind. Using the array variable for all the weather conditions, echo the following statement to the browser: We've seen all kinds of weather this month. At the beginning of the month, we had snow and wind. Then came sunshine with a few clouds and some rain. At least we didn't get any hail or sleet. Don't forget to include a title for your page, both in the header and on the page itself.
  • 21. CS380 21 PHP Arrays Ex. 2 For this exercise, you will use a list of ten of the largest cities in the world. (Please note, these are not the ten largest, just a selection of ten from the largest cities.) Create an array with the following values: Tokyo, Mexico City, New York City, Mumbai, Seoul, Shanghai, Lagos, Buenos Aires, Cairo, London. Print these values to the browser separated by commas, using a loop to iterate over the array. Sort the array, then print the values to the browser in an unordered list, again using a loop. Add the following cities to the array: Los Angeles, Calcutta, Osaka, Beijing. Sort the array again, and print it once more to the browser in an unordered list.

Editor's Notes

  • #4: Maybe delete the comments that give out the output # ("md", "bh", "kk", "hm", "jp") # ("bh", "kk", "hm") # ("bh", "kk", "hm", "ms") # ("ms", "hm", "kk", "bh") # ("bh", "hm", "kk", "ms") # ("hm", "kk")
  • #5: One bad thing with foreach: you cannot change the value of the variable after “as”, you can just assign it a value, it does not have the value in the table
  • #6: Maybe delete the comments that give out the output
  • #13: useful for embedding a small amount of PHP (a variable's or expression's value) in a large block of HTML without having to switch to "PHP-mode"