16
PHP Introduction Mohamed Ashraf

Php

Embed Size (px)

Citation preview

Page 1: Php

PHP Introduction

Mohamed Ashraf

Page 2: Php

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

Page 3: Php

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

Page 4: Php

A quick example

<html><head>Test page</head><body>The time is now

<?phpecho date();

?> <hr>

</body></html>

Page 5: Php

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>

Page 6: Php

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>

Page 7: Php

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>

Page 8: Php

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

Page 9: Php

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>

Page 10: Php

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, …

Page 11: Php

Classes

OOP Class structures will be defined, helping

integration with other apps and work together APIs followed by implementation

Inheritance Object serialization

“Magic functions”

Page 12: Php

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; } }}

Page 13: Php

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";

Page 14: Php

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…

Page 15: Php

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;

Page 16: Php

Resources

http://www.php.net http://www.w3schools.com