Basic PHP Syntax: Arrays Strings and Regular Expressions

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 21

1 Basic PHP Syntax

Arrays
Strings and regular expressions

CS380
Arrays
2

$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

Append: use bracket notation without specifying


an index
Element type is not specified; can mix types
CS380
Array functions
3

function name(s) description


number of elements in the
count
array
print_r print array's contents
array_pop, array_push, using array as a
array_shift, array_unshift stack/queue
in_array, array_search,
array_reverse, searching and reordering
sort, rsort, shuffle
array_fill, array_merge,
array_intersect,
creating, filling, filtering
array_dif, array_slice,
range
array_sum, array_product,
Array function example
4

$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

the array in PHP replaces many other collections


in Java

CS380
list, stack, queue, set, map, ...
foreach loop
5

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 "$fellow\n";
} PHP
CS380
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
7
(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

CS380
String compare functions
8

Name Function
strcmp compareTo
find string/char within a
strstr, strchr
string
find numerical position of
strpos
string
str_replace,
Comparison can be: replace string
substr_replace
Partial matches
Others
Variations with non case sensitive
functions
String compare functions
9
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];
CS380 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
11 Embedded PHP

CS380
Printing HTML tags in PHP =
12
bad style
<?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

<?= expression ?> PHP

<h2> The answer is <?= 6 * 7 ?> </h2>


PHP

The answer is 42
output

PHP expression block: a small piece of PHP that


evaluates and embeds an expression's value into
HTML
<?php<?=
expression
print ?> is?>
expression; equivalent to:
PHP
CS380
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
15
braces, missing = sign
...
<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

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
Functions
18

function name(parameterName, ..., parameterName) {


statements;
} PHP

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

CS380
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

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

CS380
PHP Arrays Ex. 1
20

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
PHP Arrays Ex. 2
21

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,


CS380

You might also like