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 = feedback@example.com;
if(strstr($feedback, shop)
$toaddress = shop@example.com;
else if(strstr($feedback, delivery)
$toaddress = fulfillment@example.com;
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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy