Intro to PHP

Intro to PHP

Intro to PHP • What is PHP? – Language developed by Rasmus Lerdorf from the Apache Group – Its primary use is for server-side scripng • Ex: To process HTML forms • Ex: To perform a DB query and pass on results • Ex: To dynamically generate HTML – PHP scripts are oJen embedded within HTML documents • The server processes the HTML document, execuAng the PHP segments and subsAtuAng the output within the HTML document Lecture 2 1 Intro to PHP – The modified document is then sent to the client – As menAoned previously, the client never sees the PHP code • The only reason the client even knows PHP is involved is due to the file extension à .php • But even this is not required if the server is configured correctly – The server can be configured to run PHP scripts even if the file does not have a .php extension – By default XAMPP will only execute PHP if the .php extension is provided – See what happens if you have PHP code without the .php extension Lecture 2 2 Intro to PHP • PHP is a HUGE language – It is a fully funcAonal language – It has an incredible amount of built-in features • Form processing • Output / generate various types of data (not just text) • Database access – Allows for various DBs and DB formats • Object-oriented features – Somewhat of a loose hybrid of C++ and Java • Huge funcAon / class library Lecture 2 3 Intro to PHP • We will look at only a small part of PHP – There are also many tools that are already pre-wri^en in / for PHP • If you are building a substanAal project you may want to use some of these – Ex: h^p://github.com/pear – Also see h^p://www.php.net/sites.php • There are also content management systems wri^en in PHP – Ex: h^p://drupal.org/ – Ex: hp://wordpress.org/ • However, we may not be covering them here – We will focus on the straight PHP language Lecture 2 4 Intro to PHP • PHP Program Structure – Or really lack thereof – PHP, as with many scripAng languages, does not have nearly the same structural requirements as a language like Java – A script can be just a few lines of code or a very large, structured program with classes and objects • The complexity depends on the task at hand – However, there are some guidelines for incorporang PHP scripts into HTML files Lecture 2 5 Intro to PHP – When a PHP file is requested, the PHP interpreter parses the enAre file • Any content within PHP delimiter tags is interpreted, and the output subsAtuted • Any other content (i.e. not within PHP delimiter tags) is simply passed on unchanged • This allows us to easily mix PHP and other content (ex: HTML) • See: – h^p://us3.php.net/manual/en/language.basic-syntax.phptags.php – h^p://us3.php.net/manual/en/language.basic-syntax.phpmode.php Lecture 2 6 Intro to PHP • Consider the following PHP file HTML 5 Document <!DOCTYPE html> <html> Root HTML Tag <head> <title>Simple PHP Example</title> Document Head </head> <body> D <?php echo "<p><h1>Output</h1>"; O echo "<h2>Output</h2>"; echo "<h3>Output</h3></p>"; PHP Code C ?> <script language="PHP"> B echo "\n<b>More PHP Output</b>\n"; echo "New line in source but not rendered"; O echo "<br/>"; D echo "New line rendered but not in source"; Y </script> </body> </html> Lecture 2 7 Intro. to PHP • Now consider the resulAng HTML <!DOCTYPE html> <html> <head> <title>Simple PHP Example</title> </head> <body> <p><h1>Output</h1><h2>Output</h2><h3>Output</h3></p> <b>More PHP Output</b> New line in source but not rendered<br/> New line rendered but not in source </body> </html> • How will it look in the browser? – Look at it in the browser! – See ex2.php Lecture 2 8 Intro to PHP – If we prefer to separate a PHP code segment from the rest of our script, we can write it in another file and include it • SomeAmes it is easier if we "separate" the PHP code from the straight html – We also may be using several different files, esp. if we are using classes • But we must tag it even if it is already within a PHP tagged segment – Included files are not interpreted by default » Don’t necessarily have to be PHP » If we want PHP, include PHP tags within the included file – See ex3.php – See h^p://us3.php.net/manual/en/funcAon.include.php Lecture 2 9 Lecture 2: Intro to PHP • Simple types • See: h^p://us3.php.net/manual/en/language.types.php – boolean • TRUE or FALSE – integer • Plaorm dependent – size of one machine word – typically 32 or 64 bits – float • Double precision • We could call it a double, but since we don't declare variables (we will discuss shortly) float works Lecture 2 10 Intro to PHP – string • We have single-quoted and double-quoted string literals – Double quoted allows for more escape sequences and allows variables to be interpolated into the string – What does that mean? » Rather than outpung the name of the variable, we output its contents, even within a quote » We'll see an example once we define variables » Note that this is NOT done in Java » See example • Length can be arbitrary – Grows as necessary Lecture 2 11 Intro to PHP • Easy conversion back and forth between strings and numbers – In Web applicaons these are mixed a lot, so PHP will implicitly cast between the types when appropriate – This is another clear difference between PHP and Java » Java requires explicit casAng » PHP allows explicit casAng if desired – See: h^p://us3.php.net/manual/en/language.types.type-juggling.php • Can be indexed – the preferred way is using square brackets $mystring = "hello"; echo $mystring[1]; – Output here is 'e' Lecture 2 12 Intro to PHP • PHP variables – All PHP variables begin with the $ • Variable names can begin with an underscore • Otherwise rules are similar to most other languages – Variables are dynamically typed • No type declaraons – Variables are BOUND or UNBOUND » Unbound variables have the value NULL – Type informaon for a variable is obtained from the current bound value – Compare this to Java Lecture 2 13 Intro to PHP • Java typing discipline: Static, strong, safe, nominave (name), manifest • PHP typing discipline: Dynamic, weak • InvesAgate what these classificaAons mean! Lecture 2 14 Intro to PHP – Implicaons of dynamic typing: • No “type clash” errors like in Java int x = 3.5; // oh no! String s = 100; // argh! – Instead we have in PHP $x = 3.5; // no problem! $s = 100; // a-ok! • A variable’s type may change throughout program execuAon $x = 5; // integer $x = 5 + 4 // integer $x = $x + 1.5; // float $x = $x . “ dollars”; // string Lecture 2 15 Intro to PHP – Perhaps intenAonally but perhaps by mistake – We have to be careful and to test types during execuAon – geype() funcAon returns a string representaon of variable’s type $x = 5; echo(geype($x)); // integer $x = $x + 1.5; echo (geype($x)); // float $x = $x . “ dollars”; echo(geype($x)); // string – is_<type>() funcAon returns a boolean to test for a given <type> $x = 5; $check = is_int($x); // true $check = is_float($x); // false – Can use these tests to make decisions within a script – See ex4.php Lecture 2 16 Intro to PHP – PHP programs have access to a large number of predefined variables • These variables allow the script access to server informaon, form parameters, environment informaon, etc. • Very helpful (as we will see) for determining and maintaining state informaon • Ex: – $_SERVER is an array containing much informaon about the server – $_POST is an array containing variables passed to a script via HTTP POST – $_COOKIE is an array containing cookies – See ex5.php Lecture 2 17 Intro to PHP • PHP Expressions and Operators – Similar to those in C++ / Java / Perl – Be careful with a few operators • / in PHP is always floang point division – To get integer division, we must cast to int $x = 15; $y = 6; echo ($x/$y), (int) ($x/$y), "<BR />"; » Output is 2.5 2 • Mixed operands can produce odd results – Values may be cast before comparing Lecture 2 18 Intro to PHP Consider comparing a string and an int • Any non-numeric PHP string value will “equal” 0 • Any numeric PHP string will equal the number it represents – first few digits Consider comparing a string and a boolean • Regular PHP string value will “equal” true • “0” string will equal false • Consider comparing an int and boolean • 0, 0.0 are false; anything else is true • Consider int and float • Float is changed to an integer Lecture 2 19 Intro to PHP • To compare strings, it is be^er to use the C- like string comparison funcAon, strcmp() • Other string funcAons are listed in Sebesta Table 9.3 • Even the == operator has odd behavior in PHP when operands are mixed Lecture 2 20 Intro to PHP • An addiAonal equality operator and inequality operator are defined === returns true only if the variables have the same value and are of the same type » If casAng occurred to compare, the result is false !== returns true if the operands differ in value or in type – Precedence and associavity are similar to C++/ Java • See h^p://us2.php.net/manual/en/language.operators.precedence.php Lecture 2 21 Intro to PHP • PHP Control Structures – Again, these are similar to those in C++ / Java • if, while, do, for, switch are virtually idenAcal to those in C+ + and Java • PHP allows for an alternave syntax to designate a block in the if, while, for and switch statements – Open the block with : rather than { – Close the block with endif, endwhile, endfor, endswitch » for (expr1; expr2; expr3): statement ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    24 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us