SlideShare a Scribd company logo
1 of 21
Arrays
Strings and regular expressions
Basic PHP Syntax
CS380
1
Arrays
2
 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
CS380
$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
Array functions
3
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, processing elements
Array function example
4
 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
foreach loop
5
foreach ($array as $variableName) {
...
} PHP
CS380
$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
Multidimensional Arrays
6
<?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
Multidimensional Arrays (cont.)
7
<?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
CS380
String compare functions
8
Name Function
strcmp compareTo
strstr, strchr
find string/char within a
string
strpos
find numerical position of
string
str_replace, substr_replace replace string
 Comparison can be:
 Partial matches
 Others
 Variations with non case sensitive functions
 strcasecmp
String compare functions
examples
9
$offensive = array( offensive word1, offensive
word2);
$feedback = str_replace($offcolor, “%!@*”,
$feedback);
PHP
CS380
$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
Regular expressions
10
[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
 Regular expression: a pattern in a piece of text
 PHP has:
 POSIX
 Perl regular expressions
CS380
Embedded PHP
11
CS380
Printing HTML tags in PHP =
bad style
12
<?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
 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 expression blocks
13
 PHP expression block: a small piece of PHP that
evaluates and embeds an expression's value into HTML
 <?= expression ?> is equivalent to:
<?= expression ?> PHP
CS380
<h2> The answer is <?= 6 * 7 ?> </h2>
PHP
The answer is 42
output
<?php print expression; ?>
PHP
Expression block example
14
<!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
Common errors: unclosed
braces, missing = sign
15
...
<body>
<p>Watch how high I can count:
<?php
for ($i = 1; $i <= 10; $i++) {
?>
<? $i ?>
</p>
</body>
</html> PHP
 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
CS380
Complex expression blocks
16
...
<body>
<?php
for ($i = 1; $i <= 3; $i++) {
?>
<h<?= $i ?>>This is a level <?= $i ?>
heading.</h<?= $i ?>>
<?php
}
?>
</body> PHP
CS380
This is a level 1 heading.
This is a level 2 heading.
This is a level 3 heading. output
Functions
Advanced PHP Syntax
17
CS380
Functions
18
function name(parameterName, ..., parameterName) {
statements;
} PHP
CS380
function quadratic($a, $b, $c) {
return -$b + sqrt($b * $b - 4 * $a * $c) / (2
* $a);
} PHP
 parameter types and return types are not written
 a function with no return statements implicitly returns
NULL
Default Parameter Values
19
function print_separated($str, $separator = ", ") {
if (strlen($str) > 0) {
print $str[0];
for ($i = 1; $i < strlen($str); $i++) {
print $separator . $str[$i];
}
}
} PHP
CS380
print_separated("hello"); # h, e, l, l, o
print_separated("hello", "-"); # h-e-l-l-o
PHP
 if no value is passed, the default will be used
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
20
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.
CS380
21

More Related Content

Similar to 07-PHP.pptx

PHP and MySQL with snapshots
 PHP and MySQL with snapshots PHP and MySQL with snapshots
PHP and MySQL with snapshotsrichambra
 
06-PHPIntroductionserversicebasicss.pptx
06-PHPIntroductionserversicebasicss.pptx06-PHPIntroductionserversicebasicss.pptx
06-PHPIntroductionserversicebasicss.pptx20521742
 
Web app development_php_04
Web app development_php_04Web app development_php_04
Web app development_php_04Hassen Poreya
 
An Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackAn Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackVic Metcalfe
 
Array String - Web Programming
Array String - Web ProgrammingArray String - Web Programming
Array String - Web ProgrammingAmirul Azhar
 
PHP Arrays - indexed and associative array.
PHP Arrays - indexed and associative array. PHP Arrays - indexed and associative array.
PHP Arrays - indexed and associative array. wahidullah mudaser
 
Zend Certification PHP 5 Sample Questions
Zend Certification PHP 5 Sample QuestionsZend Certification PHP 5 Sample Questions
Zend Certification PHP 5 Sample QuestionsJagat Kothari
 
php programming.pptx
php programming.pptxphp programming.pptx
php programming.pptxrani marri
 
Synapse india complain sharing info about php chaptr 26
Synapse india complain sharing info about php chaptr 26Synapse india complain sharing info about php chaptr 26
Synapse india complain sharing info about php chaptr 26SynapseindiaComplaints
 
2014 database - course 2 - php
2014 database - course 2 - php2014 database - course 2 - php
2014 database - course 2 - phpHung-yu Lin
 
Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Goro Fuji
 

Similar to 07-PHP.pptx (20)

lab4_php
lab4_phplab4_php
lab4_php
 
lab4_php
lab4_phplab4_php
lab4_php
 
PHP and MySQL with snapshots
 PHP and MySQL with snapshots PHP and MySQL with snapshots
PHP and MySQL with snapshots
 
Chapter 2 wbp.pptx
Chapter 2 wbp.pptxChapter 2 wbp.pptx
Chapter 2 wbp.pptx
 
06-PHPIntroductionserversicebasicss.pptx
06-PHPIntroductionserversicebasicss.pptx06-PHPIntroductionserversicebasicss.pptx
06-PHPIntroductionserversicebasicss.pptx
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQL
 
Php
PhpPhp
Php
 
Web app development_php_04
Web app development_php_04Web app development_php_04
Web app development_php_04
 
PHP Tutorial (funtion)
PHP Tutorial (funtion)PHP Tutorial (funtion)
PHP Tutorial (funtion)
 
Web Technology_10.ppt
Web Technology_10.pptWeb Technology_10.ppt
Web Technology_10.ppt
 
Php
PhpPhp
Php
 
An Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackAn Elephant of a Different Colour: Hack
An Elephant of a Different Colour: Hack
 
Array String - Web Programming
Array String - Web ProgrammingArray String - Web Programming
Array String - Web Programming
 
PHP Arrays - indexed and associative array.
PHP Arrays - indexed and associative array. PHP Arrays - indexed and associative array.
PHP Arrays - indexed and associative array.
 
Zend Certification PHP 5 Sample Questions
Zend Certification PHP 5 Sample QuestionsZend Certification PHP 5 Sample Questions
Zend Certification PHP 5 Sample Questions
 
PHP PPT FILE
PHP PPT FILEPHP PPT FILE
PHP PPT FILE
 
php programming.pptx
php programming.pptxphp programming.pptx
php programming.pptx
 
Synapse india complain sharing info about php chaptr 26
Synapse india complain sharing info about php chaptr 26Synapse india complain sharing info about php chaptr 26
Synapse india complain sharing info about php chaptr 26
 
2014 database - course 2 - php
2014 database - course 2 - php2014 database - course 2 - php
2014 database - course 2 - php
 
Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11
 

More from GiyaShefin

ccnp routing.pptx
ccnp routing.pptxccnp routing.pptx
ccnp routing.pptxGiyaShefin
 
ccna3mod9_VLAN Trunking Protocol (1).pptx
ccna3mod9_VLAN Trunking Protocol (1).pptxccna3mod9_VLAN Trunking Protocol (1).pptx
ccna3mod9_VLAN Trunking Protocol (1).pptxGiyaShefin
 
10_introduction_php.ppt
10_introduction_php.ppt10_introduction_php.ppt
10_introduction_php.pptGiyaShefin
 
Core python.pptx
Core python.pptxCore python.pptx
Core python.pptxGiyaShefin
 
Excel VBA.pptx
Excel VBA.pptxExcel VBA.pptx
Excel VBA.pptxGiyaShefin
 
Python ppt.potx
Python ppt.potxPython ppt.potx
Python ppt.potxGiyaShefin
 

More from GiyaShefin (6)

ccnp routing.pptx
ccnp routing.pptxccnp routing.pptx
ccnp routing.pptx
 
ccna3mod9_VLAN Trunking Protocol (1).pptx
ccna3mod9_VLAN Trunking Protocol (1).pptxccna3mod9_VLAN Trunking Protocol (1).pptx
ccna3mod9_VLAN Trunking Protocol (1).pptx
 
10_introduction_php.ppt
10_introduction_php.ppt10_introduction_php.ppt
10_introduction_php.ppt
 
Core python.pptx
Core python.pptxCore python.pptx
Core python.pptx
 
Excel VBA.pptx
Excel VBA.pptxExcel VBA.pptx
Excel VBA.pptx
 
Python ppt.potx
Python ppt.potxPython ppt.potx
Python ppt.potx
 

Recently uploaded

Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 

Recently uploaded (20)

Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 

07-PHP.pptx

  • 1. Arrays Strings and regular expressions Basic PHP Syntax CS380 1
  • 2. Arrays 2  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 CS380 $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 3 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, processing elements
  • 4. Array function example 4  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 5 foreach ($array as $variableName) { ... } PHP CS380 $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. Multidimensional Arrays 6 <?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.) 7 <?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 CS380
  • 8. String compare functions 8 Name Function strcmp compareTo strstr, strchr find string/char within a string strpos find numerical position of string str_replace, substr_replace replace string  Comparison can be:  Partial matches  Others  Variations with non case sensitive functions  strcasecmp
  • 9. String compare functions examples 9 $offensive = array( offensive word1, offensive word2); $feedback = str_replace($offcolor, “%!@*”, $feedback); PHP CS380 $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
  • 10. Regular expressions 10 [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  Regular expression: a pattern in a piece of text  PHP has:  POSIX  Perl regular expressions CS380
  • 12. Printing HTML tags in PHP = bad style 12 <?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  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?
  • 13. PHP expression blocks 13  PHP expression block: a small piece of PHP that evaluates and embeds an expression's value into HTML  <?= expression ?> is equivalent to: <?= expression ?> PHP CS380 <h2> The answer is <?= 6 * 7 ?> </h2> PHP The answer is 42 output <?php print expression; ?> PHP
  • 14. Expression block example 14 <!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. Common errors: unclosed braces, missing = sign 15 ... <body> <p>Watch how high I can count: <?php for ($i = 1; $i <= 10; $i++) { ?> <? $i ?> </p> </body> </html> PHP  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 CS380
  • 16. Complex expression blocks 16 ... <body> <?php for ($i = 1; $i <= 3; $i++) { ?> <h<?= $i ?>>This is a level <?= $i ?> heading.</h<?= $i ?>> <?php } ?> </body> PHP CS380 This is a level 1 heading. This is a level 2 heading. This is a level 3 heading. output
  • 18. Functions 18 function name(parameterName, ..., parameterName) { statements; } PHP CS380 function quadratic($a, $b, $c) { return -$b + sqrt($b * $b - 4 * $a * $c) / (2 * $a); } PHP  parameter types and return types are not written  a function with no return statements implicitly returns NULL
  • 19. Default Parameter Values 19 function print_separated($str, $separator = ", ") { if (strlen($str) > 0) { print $str[0]; for ($i = 1; $i < strlen($str); $i++) { print $separator . $str[$i]; } } } PHP CS380 print_separated("hello"); # h, e, l, l, o print_separated("hello", "-"); # h-e-l-l-o PHP  if no value is passed, the default will be used
  • 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 20
  • 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. CS380 21

Editor's Notes

  1. 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")
  2. 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
  3. Maybe delete the comments that give out the output
  4. 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"