Upload
mohamed-ashraf
View
623
Download
0
Embed Size (px)
Citation preview
PHP Introduction
Mohamed Ashraf
PHP Hypertext Preprocessor
No joke, that’s what it stands for Now very widely used for websites Only three years ago it was considered a
risky alternative for development Has a lot of community support
Simple PHP
PHP is meant to be invoked inline with content
Page “escapes” into and out of a regular html document
File extension is .php (was .php3 for version 3)
Initial use was control flow and simple scripting
A quick example
<html><head>Test page</head><body>The time is now
<?phpecho date();
?> <hr>
</body></html>
A quick example
<html><head>Test page</head><body>The time is now
<?php here we “jump into” phpecho date();
?> here we “jump” back out <hr>
</body></html>
Another example
<?phpinclude “utilities.php”;
?><html><head>Test page</head><body>
<?phpif ($utils->isFriendly()) {
echo “The time is now “ . date();} else {
echo “I will not give you the time of day”;}
?> <hr>
</body></html>
Another example – harder to read
<?phpinclude “utilities.php”;
?><html><head>Test page</head><body>
<?phpif ($utils->isFriendly()) {
echo “The time is now “ . date();} else {
?><i>I will not give you the time of day!</i>
<?php}
?> <hr>
</body></html>
More PHP language details
Variables are implicitly typed This is good This is bad
Variables start with $ All get/post variables automatically defined
With most default server settings With an inline directive if need be
Defined variable example
foo.html:<html><head></head><body><form submit=“getFoo.php”>Enter your name:<input type=“text” name=“username”><input type=“submit”></body></html>
getFoo.php:<html><head></head></body>Your name is <?php
if (!strcmp($username)) {echo $username;
} else {echo “not given”;
}?>!<br></body></html>
Function list examples
http://www.php.net/manual/en/function.strlen.php All string functions Some are “obvious” to c programmers
strlen, printf, fprintf, strpos Some are web tailored
htmlentities, htmlspecialchars Others are new (hacky)
addcslashes, explode, soundex, quotemeta, …
Classes
OOP Class structures will be defined, helping
integration with other apps and work together APIs followed by implementation
Inheritance Object serialization
“Magic functions”
Class example
class Cart{ var $items; // Items in our shopping cart // Add $num articles of $artnr to the cart function add_item ($artnr, $num) { $this->items[$artnr] += $num; } // Take $num articles of $artnr out of the cart function remove_item ($artnr, $num) { if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true; } else { return false; } }}
Inheritance example
Class ParentObject { var $value;
function ParentObject() { $this->value = 42; } } class MemberObject extends ParentObject { var $string;
function MemberObject() { $this->string = "This is a test string."; $this->ParentObject(); } } class ObjTest { var $ObjPointer;
function ObjTest() { $tmp = new MemberObject; $this->ObjPointer = $tmp; } } $object = new ObjTest; echo "String Contents: " . $object->ObjPointer->string . "\n"; echo "Value Contents: " . $object->ObjPointer->value . "\n";
Back to being hacky…
“->” is NOT the same thing as it is in c++ No pointers in PHP ONLY a member operator
Oh, you wanted pointers? Variable variables
Yeah, you heard right Don’t get me started…
Variable variables and classes example
class a { var $b;
}
$object = new a; $object->b = "hello"; $member_name = 'b'; echo $object->$member_name; $object->$member_name = " world"; echo $object->$member_name;
Resources
http://www.php.net http://www.w3schools.com