Except where otherwise noted, the contents of this document are Copyright 2012 Marty Stepp, Jessica Miller, and Victoria Kirst. All rights reserved. Any redistribution, reproduction, transmission, or storage of part or all of the contents in any form is prohibited without the author's expressed written permission.
http://server/path/file
https://webster.cs.washington.edu/cse190m/quote.php
webster.cs.washington.edu to run the program quote2.php and send back its output

.html file (static content): server just sends that file.php file (dynamic content): server reads it, runs any script code inside it, then sends result across the network
There are many other options for server-side languages: Ruby on Rails, JSP, ASP.NET, etc. Why choose PHP?
php.net/functionName in browser Address bar to get docs for any function
The following contents could go into a file hello.php:
<?php print "Hello, world!"; ?>
<?php and ends with ?>
.php page on your local hard drive; you'll either see nothing or see the PHP source code.php file will run the program and send you back its outputprint
print "text";
print "Hello, World!\n"; print "Escape \"chars\" are the SAME as in Java!\n"; print "You can have line breaks in a string."; print 'A string can use "single-quotes". It\'s cool!';
echo instead of print
+ - * / %
. ++ --
= += -= *= /= %= .=
5 + "7" is 12$name = expression;
$user_name = "PinkHeartLuvr78"; $age = 16; $drinking_age = $age + 5; $this_class_rocks = true;
$, on both declaration and usage# single-line comment // single-line comment /* multi-line comment */
# is also allowed
# comments instead of //// and will use it in our examplesfor loop
for (initialization; condition; update) {
statements;
}
for ($i = 0; $i < 10; $i++) {
print "$i squared is " . $i * $i . ".\n";
}
if/else statement
if (condition) {
statements;
} else if (condition) {
statements;
} else {
statements;
}
elseif instead of else ifint and float types$a = 7 / 2; // float: 3.5 $b = (int) $a; // int: 3 $c = round($a); // float: 4.0 $d = "123"; // string: "123" $e = (int) $d; // int: 123
int for integers and float for realsint values can produce a floatString type
$favorite_food = "Ethiopian";
print $favorite_food[2]; // h
. (period), not +
5 + "2 turtle doves" produces 75 . "2 turtle doves" produces "52 turtle doves""" or ''$age = 16; print "You are " . $age . " years old.\n"; print "You are $age years old.\n"; // You are 16 years old.
" " are interpolated
' ' are not interpolated:
print 'You are $age years old.\n'; // You are $age years old.\n
{}:
print "Today is your $ageth birthday.\n"; // $ageth not found print "Today is your {$age}th birthday.\n";
String functions// index 0123456789012345 $name = "Stefanie Hatcher"; $length = strlen($name); // 16 $cmp = strcmp($name, "Brian Le"); // > 0 $index = strpos($name, "e"); // 2 $first = substr($name, 9, 5); // "Hatch" $name = strtoupper($name); // "STEFANIE HATCHER"
| Name | Java Equivalent |
|---|---|
strlen |
length |
strpos |
indexOf |
substr |
substring |
strtolower, strtoupper |
toLowerCase, toUpperCase |
trim |
trim |
explode, implode |
split, join |
strcmp |
compareTo |
$feels_like_summer = false;
$php_is_rad = true;
$student_count = 217;
$nonzero = (bool) $student_count; // true
false (all others are true):
0 and 0.0
"", "0", and null (includes unset variables)(bool)false prints as an empty string (no output); true prints as a 1true and false keywords are case-insensitive$a = 3; $b = 4; $c = sqrt(pow($a, 2) + pow($b, 2));
abs
|
ceil
|
cos
|
floor
|
log
|
log10
|
max
|
min
|
pow
|
rand
|
round
|
sin
|
sqrt
|
tan
|
M_PI
|
M_E
|
M_LN2
|
null
$name = "Victoria";
$name = null;
if (isset($name)) {
print "This line isn't going to be reached.\n";
}
HTML content <?php PHP code ?> HTML content <?php PHP code ?> HTML content ...
.php file between <?php and ?> are executed as PHP code
<?php
print "<!DOCTYPE html>\n";
print "<html>\n";
print " <head>\n";
print " <title>Geneva's web page</title>\n";
...
for ($i = 1; $i <= 10; $i++) {
print "<p class=\"count\"> I can count to $i! </p>\n";
}
?>
print statements is bad style and error-prone:
\"print, how do we insert dynamic content into the page?<?= expression ?>
<h2> The answer is <?= 6 * 7 ?> </h2>
<?= expr ?> is equivalent to <?php print expr; ?>
<!DOCTYPE html>
<html>
<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>
<body>
<p>Watch how high I can count:
<?php for ($i = 1; $i <= 10; $i++) { ?>
<? $i ?>
</p>
</body>
</html>
</body> and </html> above are inside the for loop, which is never closed$end'= in <?=, the expression does not produce any output
<body>
<?php for ($i = 1; $i <= 3; $i++) { ?>
<h<?= $i ?>>This is a level <?= $i ?> heading.</h<?= $i ?>>
<?php } ?>
</body>