1 php introduction chapter 1. syntax and language constructs

23
1 PHP Introduction Chapter 1. Syntax and language constructs

Upload: stuart-wilcox

Post on 05-Jan-2016

234 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 PHP Introduction Chapter 1. Syntax and language constructs

1

PHP Introduction

Chapter 1. Syntax and language constructs

Page 2: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP’s Type Strength

PHP is a dynamically typed language (a.k.a. weakly typed language):○ The type of a variable is not / cannot be (!) declared when

you create a new variable

○ The type of a variable is automatically determined by the value assigned to it

○ The type of a variable can change throughout the program according to what is stored in it at any given time

$totalqty = 0; // integer$totalamount = 0.00; // float$totalamount = ‘Hello’; // string

2

Page 3: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP’s Type Casting

You can force a data type by type casting ○ Syntax: put target type in parentheses in front of

variable/expression you want to cast (similar to Java):

$totalqty = 0;

$totalamount = (float) $totalqty;

// $totalamount variable will be of type float and

// cast variable doesn’t change types!

Built-in functions are also available to test and set type (see later)

3

Page 4: 1 PHP Introduction Chapter 1. Syntax and language constructs

Constants Use the define() function to create a constant

define("CONSTANT_NAME", value); Constant names:

Do not begin with a dollar sign (!) It is common practice to use all uppercase letters for constant names Are case sensitive by default (this can be changed, but not recommended!)

The value you pass to the define() function can only be a scalar value: a string, integer, float, or boolean valuedefine(“VOTING_AGE”, 18);echo “<p> The legal voting age is ”, VOTING_AGE, "</p>";

Note no $ sign precedes constant names in expressions! A constant’s name cannot be used as variable names within the

quotation signs surrounding a string! A list of predefined vars and constants can be obtained calling phpinfo()

4

Page 5: 1 PHP Introduction Chapter 1. Syntax and language constructs

Variables’ Scope

I. PHP superglobals:

5

Page 6: 1 PHP Introduction Chapter 1. Syntax and language constructs

Variables’ Scope - 6 basic scope rules

I. Built-in superglobal or autoglobal variables are visible everywhere (=globally) within a script, both inside and outside functions.

PHP includes various autoglobals or superglobals, which are predefined global arrays.

Autoglobals contain client, server, and environment information that you can use in your scripts.

Autoglobals are associative arrays – arrays whose elements are referred to with an alphanumeric key instead of an index number.

6

Page 7: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Operators

Arithmetic operators: Binary operators +, -, *, /, %

Usually applied to integers or doubles String operands are converted to numbers: starting at the beginning

of the string up to 1st non-valid character; if no valid characters, the value of the string will be 0.

Unary operators +, -

String operators: . – the string concatenation operator

$s1 = “Bob’s ”;$s2 = “Auto Parts”;$result = $s1 . $s2; // result now contains the string “Bob’s Auto Parts”

7

Page 8: 1 PHP Introduction Chapter 1. Syntax and language constructs

Operators

http://cscdb.nku.edu/csc301/frank/PHP_Crash_Course_Examples/operators.php

http://www.nku.edu/~frank/csc301/Examples/PHP_Crash_Course/operators_php.pdf

Page 9: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Operators

Assignment operators: Basic assignment operator =

The value of an assignment expression

lhs_operand = rhs_expression

is the value that is assigned to lhs_operand

= associates from right to left

expressions like the following one are correct:

$a = $b = 6 + $c = 9; // $c is now 9, $a and $b are 15

// can also be written as $a = $b = 6 + ($c = 9);

Combined assignment operators: +=, -=, *=, /=, %=, .= $a += 5; is equivalent to $a = $a + 5;

9

Page 10: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Operators Assignment operators:

Pre- and Post-Increment and Decrement: ++, -- All 4 operators modify the operand and the value of the expression is the old

value (post) or the new value (pre) of the operand (like in Java).Reference operator: &

$a = 5;

$b = $a;

a copy of the value in $a is made and stored in $b, elsewhere in memory $b = &$a;

$b is an alias for the same memory location which is referred to as $a

= $a and $b are associated with / name the same memory location $a = 7; // both $a and $b are now 7 unset($b) breaks the link between name $b and the memory location storing 7

→ $b is now undefined

10

Page 11: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Operators Comparison operators:

== equals=== identical (if operands are equal and of the same type)!= not equal<> not equal!== not identical<><=>=

string comp_op integer → string is converted to a number0==‘0’ → true0 === ‘0’ → false

string comp_op string → compared as numbers if they are numerical strings…

11

Page 12: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Operators Logical operators (combine the results of logical conditions):

! NOT&& AND|| ORand AND (but lower precedence than &&)or OR (but lower precedence than ||) xor EXCLUSIVE OR ($a xor $b is true when exactly one of $a and $b is true)

The execution operator `` (= a pair of backticks, not quotes!) PHP tries to execute the content between `` as a command at the server’s

command line.

The value of the expression is the output of that command. Example:

$out = `dir`;

// on a Win server, the list of files/directories in current directory = where the script is

echo “<pre> $out </pre>”;12

Page 13: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Operators - Precedence & Associativity

Precedence = order in which operations in an expression are evaluated Associativity = order in which operators of equal precedence are

evaluated

13

$a=5;$b=4;? The value of the following expression?$b + ++$a/2 + 3 == 10

Page 14: 1 PHP Introduction Chapter 1. Syntax and language constructs

Using Variable Functions Testing and setting variable types:

string gettype(mixed variable)Returns one of the strings: “bool”, “int”, “double”, “string”, “array”, “object”, “resource”, “NULL”, or “unknown type”.“Mixed” – is a pseudo-type / signifies that variables of many (or any) data types are accepted as arguments; or function is “oveloaded”

bool settype(mixed variable, string type)Sets the type of “variable” to the new type passed as a second argument.“Type” can be “bool”, “int”, “double”, “string”, “array”, “object”, “resource”, “NULL”.

$a = 56;echo gettype($a).’<br/>’; // displays intsettype($a, ‘double’);echo gettype($a).’<br/>’; // displays double

14

Page 15: 1 PHP Introduction Chapter 1. Syntax and language constructs

Using Variable Functions Specific type-testing functions, return true of false

is_array(variable)is_double(variable) is_float(variable) is_real(variable)is_long(variable) is_int(variable)

is_integer(variable)is_string(variable)is_bool(variable)is_object(variable)is_resource(variable)is_null(variable)is_scalar(variable) – checks whether variable is an integer, boolean,

string or floatis_numeric(variable) – checks whether variable is any kind of number

or a numeric stringis_callable(variable) – checks whether variable is the name of a valid

function15

Page 16: 1 PHP Introduction Chapter 1. Syntax and language constructs

Using Variable Functions

Testing variable status:bool isset(mixed variable1 [, mixed variable2 …] )

Returns true if all variables passed to the function exist and false otherwise

void unset(mixed variable1 [, mixed variable2, …])Gets rid of the variable(s) it is passed

bool empty(mixed variable)Checks if variable exists and has a nonempty, nonzero value

These functions are very useful for checking (server-side) if the user filled out the appropriate fields in the form; example:

echo isset($tireqty); // always true for a textbox fieldecho empty($tireqty); // depends on user input, false if form field is empty

16

Page 17: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Conditionals if (condition)

statement or code_blockwhere code_block = { statement(s) }

if (condition)statement or code_block

elsestatement or code_block

NOTE: when writing a cascading set of if-else statements “else if” can be also written “elseif”

Conditional operator: condition ? value_if_true : value_if_false

switchSame syntax as Java; control expression and case labels can

evaluate to integer, string or floatMust use break to end execution after a matching case

17

Page 18: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Conditionals - Example HTML form contains the following select list:

<select name="find"><option value="a">I'm a regular customer</option><option value="b">TV advertising</option>…

</select> Equivalent if-else and switch statements for processing form data for the select

form field: $find = $_POST["find"]; if ($find == "a")

echo "<p>Regular customer.</p>";elseif ($find == "b")

echo "<p>Customer referred by TV advertising.</p>";…

switch($find) {case "a":

echo "<p>Regular customer.</p>";break;

…}

18

Page 19: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Conditionals - Example http://cscdb.nku.edu/csc301/frank/

PHP_Crash_Course_Examples/orderform_3.html

http://www.nku.edu/~frank/csc301/Examples/PHP_Crash_Course/processorder_3_php.pdf

Page 20: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Loop Statements while ( condition ) // same semantics as in

Javastatement or code_block

Example - generate a shipping cost table, if prices are proportional to the distance:<table border="0" cellpadding="3">

<tr> <td class="header" align="center">Distance</td> <td class="header" align="center">Cost</td>

</tr><?php

$distance = 50;while ($distance <= 250 ) { echo "<tr>\n <td align = 'right'>$distance</td>\n"; echo "<td align = 'right'>". $distance/10

."</td>\n</tr>\n"; $distance += 50;}

?></table>

20

Page 21: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Loop Statements http://cscdb.nku.edu/csc301/frank/

PHP_Crash_Course_Examples/freight.php

http://www.nku.edu/~frank/csc301/Examples/PHP_Crash_Course/freight_php.pdf

Page 22: 1 PHP Introduction Chapter 1. Syntax and language constructs

PHP Loop Statements do

statement or code_blockwhile ( condition ); // same semantics as in Java

for (initial-action; loop-continuation-condition; action-after-each-iteration)

statement or code_block // same semantics as in Java

Interesting example – combine variable variables with a for loop to iterate through and process a series of form fields with repetitive names, such as name1, name2, name3 etc:

for ($i=1; $i<=$numfields; $i++) { $temp = “name$i”; // $i is interpolated!

echo $$temp . “<br />”; }

22

Page 23: 1 PHP Introduction Chapter 1. Syntax and language constructs

Alternative Control Structure Syntax

control_structure (expression_or_condition) :statements;

special_keyword;

The alternative syntax can be used for:statement special_keyword is:

if endifswitch endswitchwhile endwhile for endfor

if ($totalqty == 0) :echo "<p>You didn’t order anything on the previous

page!</p>";exit;

endif;

23