Upload
sagaroceanic11
View
298
Download
0
Tags:
Embed Size (px)
Citation preview
Introduction to PHP
What is PHP? PHP: Hypertext Preprocessor A server-side, cross-platform HTML
embedded scripting language
What do I need?1. PHP-enabled web server2. Text editor3. A way to get PHP scripts from your
machine to the server
What is it? and What do I need?
Basic Syntax Escaping from HTML
1. <?php … ?>2. <script language=“php”> … </script>3. <? … ?>4. <% … %>
For Example… <?php
/* The world renowned first program. Programmer: Todd Barber
Date: October 31, 2006*/ echo “Hello World!”; #displays on the screen// A simple program to illustrate just the basics
?>
Types Boolean -> TRUE or FALSE Integer – number of the set
Z = {..., -2, -1, 0, 1, 2, ...} Float -> “decimal numbers” String – series of characters
Single quote (‘) – doesn’t expand variables Double quote (“) – does expand variables
Array – ordered map that assigns values to keys
NULL – represents that a variable has no value. NULL is the only possible value.
See http://us2.php.net/manual/en/language.types.php for all possible types and more details.
Variables Variables are represented by a dollar
sign followed by the name of the variable.
The variable name is case-sensitive. Variable names follow the same rules
as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores.
$this_is_a_valid_variable$this-one-is-not
More Variables Predefined Variables
$GLOBALS – all variables currently in the global scope
$_SERVER – all variables set by the web server
$_POST – variables provided by the HTTP POST
$_GET – variables provides by the HTTP GET (in the URL)
$_SESSION – variables currently registered with the script’s session
More Variables - Scope For the most part PHP variables have a single scope<?php $a=1;
include ‘header_info.php’;?>You can reference the $a variable in the file ‘header_info.php’
<?php$b=1;function footer_info () {
echo $b;}
footer_info();?>Nothing will output. The echo statement refers to the local scope of the variable
(inside the function.) Global variables must be declared global inside the function.
Global Keyword<?php
$a = 1;$b = 2;
function Sum(){ global $a, $b; $b = $a + $b;}
Sum();echo $b;
?>
What is $b?
More Variables – Scope
Passing Variables<?php
$a = 1;$b = 2;
function Sum ($a, $b){ $b = $a + $b;}
Sum($a, $b);echo $b;
?>
What is $b?3 2
More Variables - Variable
This outputs
hello world hello world
Variable names which can be set and used dynamically
<?php$a = ‘hello’;$$a = ‘world’;
echo “$a ${$a}”;echo “$a $hello”;
?>
Constants - value cannot change during the execution of the script A constant is case-sensitive by default. By convention, constant identifiers are always uppercase.
<?phpdefine (“PI”,”3.14159265358979323846”);echo PI;
?>
This outputs3.14159265358979323846
Operator Precedence
Associativity Operators Additional Information
non-associative new new
left [ array()
non-associative ++ -- increment/decrement
non-associative ~ - (int) (float) (string) (array) (object) @ types
non-associative instanceof types
right ! logical
left * / % arithmetic
left + - . arithmetic and string
left << >> bitwise
non-associative < <= > >= comparison
non-associative == != === !== comparison
left & bitwise and references
left ^ bitwise
left | bitwise
left && logical
left || logical
left ? : ternary
right = += -= *= /= .= %= &= |= ^= <<= >>= assignment
left and logical
left xor logical
left or logical
left , (comma) many uses
Operators Arithmetic
-$a is negation $a + $b is addition $a - $b is subtraction $a * $b is multiplication $a / $b is division (always returns float) $a % $b is modulus
Assignment $a = 5 is NOT “equal to.” It is “gets set
to” Combined operators
+=, -=, *=, /=, %=, .=
More Operators Comparison
$a == $b is equal $a === $b is identical (includes type) $a != $b is not equal $a <> $b is not equal $a !== $b is not identical $a < $b is less than $a > $b is greater than $a <= $b is less than or equal to $a >= $b is greater than or equal to
Conditional ?: is ternary – expr1 ? expr2 : expr3
If expr1 is TRUE, the expression evaluates to expr2 If expr1 is FALSE, the expression evaluates to expr3
Shorthand for single expression if statements
Comparing Different TypesOperand 1 Operand
2Result
Null or String
String Convert NULL to “”, numerical or lexical comparison
Bool or null Anything Convert to bool, FALSE<TRUE
String or number (or resource)
String or number (or resource)
Translate strings (and resources) to numbers, usual math
Array Array Array with fewer numbers is smallerIf key from operand 1 is not found in operand 2 then arrays are incomparable Compare value by value
Array Anything Array is always greater
More Operators Error Control
@ - suppresses any errors that may be generated Works on expressions – if you can take a value of it then
you can use it.
Strings Concatenation (.) Concatenating Assignment (.=)
<$php@include “header_info.php”; // suppress error if file doesn’t exist
$a = “Hello”; // assign value Hello to $a$b = $a . “ World”; // $b evaluates to “Hello World”
$a .= “ World”; // $a evaluates to “Hello World”?>
More Operators Increment and Decrement
++$a – Preincrement – Increment by one, then return $a $a++ - Postincrement – Return $a, then increment by one --$a – Predecrement - Decrement by one, then return $a $a-- - Postdecrement - Return $a, then decrement by one
<?php$a = 5;echo "Should be 5: " . $a++ . "<br />\n";echo "Should be 6: " . $a . "<br />\n";
$a = 5;echo "Should be 6: " . ++$a . "<br />\n";echo "Should be 6: " . $a . "<br />\n";
$a = 5;echo "Should be 5: " . $a-- . "<br />\n";echo "Should be 4: " . $a . "<br />\n";
$a = 5;echo "Should be 4: " . --$a . "<br />\n";echo "Should be 4: " . $a . "<br />\n";
?>
More Operators
Logical $a and $b is AND – TRUE if both are
TRUE $a or $b is OR – TRUE if either is
TRUE $a xor $b is XOR – TRUE if either is
TRUE, but not both ! $a is NOT – TRUE is $a is not TRUE $a && $b is AND – TRUE if both are
TRUE $a || $b is OR – TRUE if either is TRUE
More Operators Array
$a + $b is union – appends the right side to the left side and doesn’t overwrite variables
$a == $b is Equal – TRUE is they have the same key/value pairs
$a === $b is Identity – TRUE if they have the same key/value pairs in the same order and of the same types
$a != $b is Inequality – TRUE if $a is not equal to $b
$a <> $b – Same as Inequality above $a !== $b is Non-identity – TRUE if $a not
identical to $b
Array Comparisons<?php
$a = array ("a" => "apple", "b" => "banana");$b = array ("a" => "pear", "b" => "strawberry", "c" => "cherry");
$c = $a + $b; // Union of $a and $becho "Union of \$a and \$b: \n";var_dump ($c);
$c = $b + $a; // Union of $b and $aecho "Union of \$b and \$a: \n";var_dump ($c);
?>
<?php$a = array ("apple", "banana");$b = array (1 => "banana", "0" => "apple");
var_dump($a == $b); // bool(true)var_dump($a === $b); // bool(false)
?>
<?php$a = array(1,2,3);$b = array(1,7,8,9,10);$c = $a + $b; // Union of $a and $becho "Union of \$a and \$b: \n";//echo $cprint_r($c);
?>
Control Structures -- if if – evaluates an expression to its
Boolean value – if the expression evaluates to TRUE then the conditional code is executed; otherwise it is ignored
<?php$a = 5;if ($a = 6) echo “Hello World”;
?>
<?php$a = 5;if ($a == 6){ echo “Hello World”; $b = 7;}
?>
if block is executed anddisplays Hello World – note theassignment operator in the expression
if block is ignored andnothing is done – note the comparison operator in the expression
Control Structures - else
else – extension of if statement that executes code when the if expression evaluates to FALSE
<?php$a=3;$b=4;if ($a < $b) echo “Variable A is less than B”;else echo “Variable B is less than A”;
?>
Control Structures - elseif
elseif – another extension of if
<?php$a=3;$b=4;if ($a < $b) { echo “Variable A is less than B”;} elseif ($a == $b) { echo “Variable A has the same value as B”;} else { echo “Variable B is less than A”;}
?>
Control Structures - while while – execute the statements
as long as the expression evaluates to TRUE
<?php$a=3;while ($a==4){ echo “The value of a is ”.$a;}
?>
<?php$i = 1;while ($i <=10){ echo “i is set to “.$i++;}
?>
<?php $j = 0; while ($j <=10) { echo “j is set to “.++$j; }?>
Counts to
10Counts to
11
Control Structures – do-while do-while – same as while except
the code chunk is guaranteed to execute at least once
<?php$a=3;while ($a==4){ echo “The value of a is ”.$a;}
?>
<?php $a=3; do { echo “The value of a is ”.$a; } while ($a==4);?>
Evaluates to FALSE and whileloop statement(s) are neverexecuted
while expression isn’t evaluateduntil after at least one iteration of the do-while statements. Thisechoes “The value of a is 3” tothe screen.
for (expr1; expr2; expr3){ statement(s); } expr1 is evaluated unconditionally expr2 is evaluated at the beginning
of each iteration; continues on TRUE expr3 is evaluated at end of iteration
<?phpfor($i=1;$i<=10;$i++){ echo $i.”<br />”;}
?>
Control Structures - for
<?php $i=1; while ($i<=10) { echo $i.”<br />”; $i++; }?>
functions the same as
Control Structures - switch switch – the same as a series of
if…elseif statements<?php $i = 2; switch ($i) { case 0: echo $i; break; case 1: echo $i; break; case 2: echo $i; break; default: echo $i; break;?>
<?php $i=2; if ($i==0) echo $i; elseif ($i==1) echo $i; elseif ($i==2) echo $i;?>
More switch
<?php $i = 4; switch ($i) { case 0: case 1: case 2: case 3: echo “I is less than 4”; break; case 4: echo “I is equal to 4”; break; default: echo “I is greater than 4”; break;?>
Combining cases Omitting Breaks
<?php $i = 4; switch ($i) { case 0: case 1: case 2: case 3: echo “I is less than 4”; case 4: echo “I is equal to 4”; default: echo “I is greater than 4”;?>
Control Structures – require and include
require – includes and evaluates a specific file; failure results in a Fatal Error
<?php require ‘header.php’;?>
include - includes and evaluates a specific file; failure results in a Warning
<?php include ‘header.php’;?>
Control Structures –require_once and include_once require_once – same as require except
if the file has already been included, it will not be included again
<?php require_once ‘header.php’;?>
include_once - same as include except if the file has already been included, it will not be included again
<?php include_once ‘header.php’;?>
Use when the same file might be included and evaluated more than once during a particular execution of a script, and you want to be sure that it is included exactly once to avoid problems with function redefinitions, variable value reassignments, etc.
User-defined functions Any valid PHP code can appear inside a
function Names follow the same rules as other
labels in PHP All functions in PHP have the global
scope<?php function my_first_function ($arg1, $arg2, … ,$arg_n) //arguments aren’t
mandatory { echo “PHP code goes here.”; return $return_value; //only used when something is returned }my_first_function(); // example of function call with no argumentsmy_first_function(1,2); // function with static argumentsmy_first_function($variable); // function with a variable as an argument}
Functions and Arguments
Information can be passed to the function by the argument list, a comma separated value list of expressions
Arguments may be passed by: Value (default) Reference Default argument list
Variable-length argument lists are supported only in PHP4 and greater
Passing by value examples<?php
######### NUMBERS ########### function add_numbers($value1, $value2) { echo “The numbers $value1 + $value2 equal “. $value1+$value2; }add_numbers(3,4); #adding 2 static numbersadd_numbers($age1,$age2); #adding 2 ages given by a user from a form
######### STRING ########### function display_instructions() { echo “Text goes here. Great for text that changes often and is used many places.”; }display_instructions();
######### ARRAYS ########### function add_array_values($func_array) { echo “The numbers $func_array[0] + $func_array[1] = “. $func_array[0] +
$func_array[1]; }$main_program_array = array(2,3);add_array_values($array);?>
Function Examples
More Function Examples Passing by Reference and Default Argument List<?php$dbc = OCILogon("A201","$password","$database");function which_name($identifier,&$conn,$count="1"){
//global $dbc;//$conn =& $GLOBALS['dbc'];if ($identifier == "last") $sql = "select t100_first_name, t100_last_name from a201t100 where t100_last_name like 'Q%'";else $sql = "select t100_first_name, t100_last_name from a201t100 where t100_first_name like 'Q%'";$stmt = OCIParse($conn,$sql);OCIExecute($stmt);while ($row=OCI_fetch_row($stmt)) {
echo "<tr><td>".$count++."</td><td>$row[0] $row[1]</td></tr>";}OCIFreeStatement($stmt);OCILogoff($conn);}
echo "<table border='1' cellpadding='3’ width='30%'><tr><td>Count</td><td>Name</td></tr>\n“;
which_name("first",$dbc);echo"</table>";?>
More Function Examples Passing by reference notes
Used when you want to change the value of the object you passed in
I don’t know of a realistic use except when using classes. Can be used to return more than one value from a function (more on that later).
Passing by default argument list Any defaults must be on the right side of
the argument list Must be a constant expression Uses default unless specified otherwise
Variable length argument lists Uses the func_num_args(), func_get_arg(), and
func_get_args() functions. <?phpfunction math(){ $numargs = func_num_args(); echo "Number of arguments: $numargs\n<br />"; echo "The second side is: " . func_get_arg(1) . "<br />\n"; $arg_list = func_get_args(); for ($i = 1; $i < $numargs +1; $i++) { echo "Side $i is: " . $arg_list[$i -1] . "<br />\n"; $area += $arg_list[$i -1]; } return $area;}
$area_of_object = math(3,4,5,6,1); // Prints 'Number of arguments: 5'echo "The area of the object is $area_of_object";?>
Returning values
A value can be returned by using the optional return() statement
Function execution is ended immediately and control passed back to the line that called the function
Returns a single variable could be a single number or string could be an array with several
values
return() examples
Single number<?php function square($num) { return $num * $num; }echo square(5); //displays 25?>
Single String<?php function display($string1, $string2=“World”) { return $string1 . $string2; }echo display(“Hello”,” Todd”);// displays Hello Toddecho display(“Hello ”);//displays Hello World?>
More return() examples
Array – use the built-in list() function to access the array elements
<?php function math($num1, $num2) { $div = $num1 / $num2; $mutli = $num1 * $num2; $add = $num1 + $num2; $sub = $num1 - $num2; return array($div, $mutli, $add, $sub); }list ($d, $m, $a, $s) = math("6","2");echo "Division: $d";echo "<br />Multiplication:". $m;echo "<br />Addition: $a";echo "<br />Subtraction: $s";?>
More return() examples Passing by reference to return multiple
values<?php function split_string($input, $cut_point, &$first, &$second) { if(strlen($input) < $cut_point) return false; $first = substr($input, 0, $cut_point); $second = substr($input, $cut_point); return true; }$input_text = "abcdefghijklmnopqrstuvwxyz";if(split_string($input_text, 30, $first_half, $second_half) != true) { echo "Could not split input, cut-point is entire string!<br />";}if(split_string($input_text, 15, $first_half, $second_half) == true) { echo "First segment of input: $first_half<BR>"; echo "Second segment of input: $second_half<BR>";}?>
Oh, by the way… You can also return by reference. See
http://www.php.net/manual/en/language.references.return.php for a simple example and some explanation
Remember variable variables? (Slide 9) PHP also allows for variable functions
<?php function display() { echo “In a function…”; }$variable_function = “display”;$variable_function();?>
Built in Functions - http://www.php.net/manual/en/funcref.php Sessions - http://www.php.net/manual/en/ref.session.php Oracle - http://www.php.net/manual/en/ref.oci8.php Strings - http://www.php.net/manual/en/ref.strings.php Date & Time - http://www.php.net/manual/en/ref.datetime.php Arrays - http://www.php.net/manual/en/ref.array.php File System - http://www.php.net/manual/en/ref.filesystem.php PDF - http://www.php.net/manual/en/ref.filesystem.php