1 / 17

PHP Introduction

PHP Introduction. Bill Jerome. 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 Is developed by hackers (see name) Is hacky. PHP.

enan
Download Presentation

PHP Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP Introduction Bill Jerome

  2. 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 • Is developed by hackers (see name) • Is hacky

  3. PHP • Hacky, but (also?) very c-like • Classes, etc., work very much like c/c++ • Designed to work in the world of HTML • Is run-time interpreted by the web server • Exception: those running Zend Cache • We sure won’t be • Reminder: it’s hacky

  4. 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

  5. A quick example • <html> <head>Test page</head> <body> The time is now <?php echo date(); ?> <hr> </body> </html>

  6. A quick example • <html> <head>Test page</head> <body> The time is now <?php here we “jump into” php echo date(); ?> here we “jump” back out <hr> </body> </html>

  7. Another example <?php include “utilities.php”; ?> <html> <head>Test page</head> <body> <?php if ($utils->isFriendly()) { echo “The time is now “ . date(); } else { echo “I will not give you the time of day”; } ?> <hr> </body> </html>

  8. Another example – harder to read <?php include “utilities.php”; ?> <html> <head>Test page</head> <body> <?php if ($utils->isFriendly()) { echo “The time is now “ . date(); } else { ?> <i>I will not give you the time of day!</i> <?php } ?> <hr> </body> </html>

  9. 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

  10. 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>

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

  12. Classes • OOP • Class structures will be defined, helping integration with other apps and work together • APIs followed by implementation • Inheritance • Object serialization • “Magic functions”

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

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

  15. 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…

  16. 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;

  17. Resources • http://www.php.net • http://www.evilwalrus.com/ • http://www.devnetwork.net/

More Related