14

Click here to load reader

DIG1108C Lesson 6 - Fall 2014

Embed Size (px)

DESCRIPTION

Valencia College Introduction to Server-Side Development DIG1108C Lesson 6 - Fall 2014

Citation preview

Page 1: DIG1108C Lesson 6 - Fall 2014

Intro To Server Side Development

Week Six

Page 2: DIG1108C Lesson 6 - Fall 2014

General Review

• Literals: • boolean • integer • float • string • array

• Variables: • $anything • $any['array']

• Expressions • 1 + 1 == 2 • $a = $b + 1

• Control Structures • conditional branches • conditional loops:

• while, do-while • for, foreach

• Workflow Diagrams: • diamonds: decisions • rectangles: process • arrows: branches

• Version Control & Git

Page 3: DIG1108C Lesson 6 - Fall 2014

Review - Arrays

• An array type is a data type that is meant to describe a collection of values or variables, each selected by one or more indices(keys) tha can be computed at run-time of the program.

• By default, the array type in PHP generates computed, numerical indices, starting with zero, to make a list: var_dump(array( 'one', 'two', 3, 4, 4.1, 4.2 )); $list = array(); $list[] = 'one'; $list[] = 'two';

• The value for the key can also be specified as any scalar literal (neither array, object nor resource), often a string var_dump(array( 'one' => 1, 2 => 'two' )): $list[4] = 'four'; $list['five dot one'] = 5.1;

Page 4: DIG1108C Lesson 6 - Fall 2014

Control Flow Statements

• Control Flow - refers to the order in which the individual statements, instructions or function calls of an imperative or declarative program are executed or evaluated. Execution results in a choice being made as to which of two or more paths should be followed.

• Types of Control Flow statements:

• continuation at a different statement (unconditional branch or jump)

• execute statements only if some condition is met (conditional branch)

• execute statements until some conditional is met(loop, conditional branch)

• execute defined statements and return (sub/co-routines, continuations)s

• stop executing statements (unconditional halt)

Page 5: DIG1108C Lesson 6 - Fall 2014

Review - Loops• A loop is a sequence of statements which is specified once but which may be carried out several times in

succession, a specified number of times or indefinitely

• Specific number of times: for ( $count = 0; $count < $max; $count++ ) do_something();

• Once per each item in a collection(array): foreach ( $collection as $item ) do_something(); foreach ($collection as $key => $value ) do_something();

• Until some condition is met: while ( $condition == true ) do_something(); do something(); while ( $condition );

• Indefinitely(infinitely): while ( true ) do_something(); do something(); while ( true);

Page 6: DIG1108C Lesson 6 - Fall 2014

Procedural Programming

• Procedural programming is based on specifying the steps the program must take to reach the desired state.

• Procedures, also known as routines, subroutines, methods or functions contain a series of computational steps to be carried out. Any given procedure might be called at any point during a program's execution.

Page 7: DIG1108C Lesson 6 - Fall 2014

Declarations

• Unlike variables, functions must be "declared" to use do_something(); // "calling" an undefined function !! Fatal Error: function do_something is not defined

• The keyword function declares a function function do_nothing() { } do_nothing(); // "invoking" a function

• Each function can only be declared once: foreach ( range(1, 10) as $loop ) function once_and_only_once() { } !! Fatal Error: Cannot redeclare once_and_only_once()

Page 8: DIG1108C Lesson 6 - Fall 2014

Modular Programming

• Modular Programming ("top-down design" or "stepwise refinement") is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality

• Separation of Concerns - one piece at a time. Increasing the complexity of a system compounds the difficulty of maintaining it; smaller and simpler components are easier to maintain

• Abstraction - write it once and only once

• Encapsulation - everything needed is there

• Scoping - doesn't affect other elements

Page 9: DIG1108C Lesson 6 - Fall 2014

Functions

• Functions must start with the function keyword, must contain a valid function identifier (with variables), provide an optional list of arguments surrounded by parentheses, even if there are none, and a block of code: function do_something( $an_argument, $another ) { // Code goes here }

• Nothing from outside is visible to code in the block

• Nothing inside the block is visible outside the function

• Pass values into a function as arguments at invocation: do_something( 'some value', "$another_value );

Page 10: DIG1108C Lesson 6 - Fall 2014

$outside_of_scope = 'outside only';

function do_something( $an_arg, $arg_two = false ) {

$inside_of_scope = 'inside only';

if( $arg_two ) echo $outside_of_scope;

echo $an_arg; // passed in at invocation

return $inside_of_scope; // passed back out

}

do_something( 'now' ); // prints "now"

echo $inside_of_scope; // Notice: Undefined variable

do_something( 'again', true ); // Notice: Undefined variable

Page 11: DIG1108C Lesson 6 - Fall 2014

Assignment 6.1

Finding Functions

Page 12: DIG1108C Lesson 6 - Fall 2014

Finding Functions

• Pair up, login to Github

• Open an existing Workspace and find some functions together

• Copy and paste the function definition for each into a new file called assignment-6.1.md

• Identify the name of the function and the names of all of the arguments with comments; bonus points for identifying the return value of the function

• Find at least three invocations of each function

Page 13: DIG1108C Lesson 6 - Fall 2014

Assignment 6.2

Identifying Functions & Scope

Page 14: DIG1108C Lesson 6 - Fall 2014

Functions & Scope

• Find at least three functions in the WordPress project

• Document them in a new file called assignment-6.2.md

• Use the format: path/to/file.php:9999

• Identify the name of the function and its arguments with comments

• Identify the in-scope variables by name

• Identify the return value of each function

• Add and commit your file, push to Github