1 / 17

Intermediate PHP (2) File Input/Output & User Defined Functions

Intermediate PHP (2) File Input/Output & User Defined Functions. last week …. PHP origins & use Basic Web 1.0 2-tier/3-tier architecture with PHP PHP as a scripting language (supporting procedural & oo paradigms) Basic structure & use (statements, variables, control structures, operators)

felice
Download Presentation

Intermediate PHP (2) File Input/Output & User Defined Functions

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. Intermediate PHP (2)File Input/Output & User Defined Functions

  2. last week … • PHP origins & use • Basic Web 1.0 2-tier/3-tier architecture with PHP • PHP as a scripting language (supporting procedural & oo paradigms) • Basic structure & use (statements, variables, control structures, operators) • PHP data types - 5 basic – integer, floating-point, string, boolean & NULL & 3 complex - array, hash & object • PHP Functions Library (700+) – string handling, input/output, date & time, db interaction, xml processing etc. etc. • the exit & die() statements

  3. File Input / Output & Disk Access (1) • Reading and Writing to Files Communicating with files follows the pattern of opening a stream to a file, reading from or writing to it, and then closing the stream. fopen(..): the fopen function opens a file for reading or writing. The function expects the name of a file and a mode e.g. fopen (‘c:/temp/myfile.txt’, ‘r’); which opens a file called ‘myfile.txt’ in the directory ‘c:/temp’ in the “read” mode File read/write modes : r reading only w write only, create if necessary, discard previous content a append to file, create if necessary, start writing at end r+ reading and writing w+ reading & writing, create if necessary, discard previous content a+ reading & writing, create if necessary, start writing at end

  4. Input / Output & Disk Access (2) fclose (resource file) : used to close a file. feof (resource file) : as a file is read, php keeps a pointer to the last place in the file read; the feof function returns true if the end of file is reached. fgetcsv(resource file, integer length, string separator) : used for reading comma-separated data from a file. The optional separator argument specifies the character to separate fileds. If left out, a comma is used. fgets(resource file, integer length) : returns a string that reads from a file. It will attempt to read as many characters – 1 as specified by the length value. A line-break character is treated as a stopping point, as is the end of the file. fwrite(resource file, string data, integer length) : writes a string to a file. The length argument is optional and sets the number of bytes to write.

  5. User Defined Functions (1) • Functions are re-usable blocks of code that can referenced over and over again. Arguments can be passed to functions and values can be returned by them. • arguments & return values can be passed by value or reference • PHP can create functions dynamically at run-time (Lambda –Style) • References to functions can be held in variables (or arrays) - allowing functions to be a passed as arguments to other functions • Declaring a function • - functions are declared using the function statement, a name and parenthesis () • e.g. • function my_function() {…..} • - functions can accept any number of arguments and these are separated by • commas inside the parenthesis • e.g. • function my_function($arg1, $arg2) {…..}

  6. User Defined Functions (2) • the following simple function prints out any text passed to it as bold <?php function print_bold($text){ print("<b>$text</b>"); } print("This Line is not Bold<br>\n"); print_bold("This Line is Bold"); print("<br>\n"); print("This Line is not Bold<br>\n"); ?> run code

  7. User Defined Functions (3) • Calculator example (from last weeks workshop) <?php function calculate($x, $y, $op) { switch($op) { case '+': $prod = $x + $y; break; case '-': $prod = $x - $y; break; case '*': $prod = $x * $y; break; case '/': $prod = $x / $y; break; } return $prod; } $x = 33; $y = 77; $op = '*'; $prod = calculate($x, $y, $op); echo "$x $op $y = $prod"; ?> run code

  8. User Defined Functions (4) - the return statement - at some point the function will finish and is ready to return control to the caller - execution then picks up directly after the point the function was called - it is possible to have multiple return points from a function (but this will reduce code readability) - if a return statement includes an expression, return(expression), the value of the expression will be passed back - see calculator example on previous page & below <?php function makeBold($text){ $text = "<b>$text</b>"; return($text); } print("This Line is not Bold<br>\n"); print(makeBold("This Line is Bold") . "<br>\n"); print("This Line is not Bold<br>\n"); ?>

  9. User Defined Functions (5) - values and references - for most data types, return values are passed by value - for objects, discussed next week, return values are returned by reference - the following function creates a new array of 10 random numbers between 1 and 100 and passes it back as a reference <?php function &get_rand_array() { $a = array(); for($i=0; $i<10; $i++) { $a[] = rand(1,100); } return($a); } $my_new_array = &get_rand_array(); print_r($my_new_array); ?> run code

  10. User Defined Functions (6) - scope - scoping is way of avoiding name clashes between variables in different functions - each code block belongs to a certain scope - variables within functions have local scope and are private to the function - variables outside a function have a global scope <?php $a = 1; // global scope function test(){ echo $a; // reference to local scope variable } test(); ?> The above example will output nothing because the $a inside the function has local scope

  11. User Defined Functions (7) - the global keyword can be used to access variables from the global scope within functions <?php $a = 1; $b = 2; function sum(){ global $a, $b; $b = $a + $b; } sum(); echo $b; ?> - The above script will output 3. By declaring $a and $b global within the function, all references to either variable will refer to the global version. There is no limit to the number of global variables that can be manipulated by a function. (Is it a good idea to use globals in this way?)

  12. User Defined Functions (8) - arguments - functions expect arguments to be preceded by a dollar sign ($) and these are usually passed to the function as values - if an argument has a & sign in front - it is treated as a reference - the following example shows an argument passed as reference <?php function strip_commas(&$text){ $text = str_replace(",", "", $text); } $my_number = "10,000"; stripCommas($my_number); print($my_number); ?>

  13. User Defined Functions (9) • default values - a function can use a default value in an argument using the = sign to precede the argument - consider the following example <?php function setName($FirstName = "John", $LastName = "Smith"){ return "Hello, $FirstName $LastName!\n"; } ?> - So, to greet someone called John Smith, you would just use: setName(); - To greet someone called Tom Davies, you would use: setName("Tom", "Davies"); - To greet someone called Tom Smith, you would use:setName("Tom");

  14. User Defined Functions (10) • recursive functions (1) - recursive functions are functions that call themselves (self-calling) or to be sung to the tune of "When the Moon Hits Your Eye": "When a function calls a function in a Turing machine ... that's recu-u-u-u-ursion!" or to put it simply: recursion means anything that references itself. • compare with iteration • example of iteration (print out all the values of an array) <?phpfor ($i = 0; $i < sizeof($array); $i++) {         print $array[$i]; } ?>

  15. User Defined Functions (11) • recursive functions (2)- Mathematically speaking, a factorial (denoted by "!") is the result of a number multiplied by all positive integers less than that number. Non-integer and negative values are considered undefined. Zero factorial (0!), however, is defined as 1. e.g. 6! = 6 * 5 * 4 * 3 * 2 * 1 or 720 <?php function factorial($number) { if ($number < 2) {         return 1;     } else {         return ($number * factorial($number-1));     } } print factorial(6); ?> run code

  16. User Defined Functions (12) • anonymous functions (run-time or dynamically created functions) - it is possible for PHP to use the value of an input (e.g. from a form) and change the definition of a function based on the input - example using calculator (last week’s workshop) <?php $add = create_function('$a,$b', 'return $a + $b;'); $subtract = create_function('$a,$b', 'return $a - $b;'); $multiply = create_function('$a,$b', 'return $a * $b;'); $divide = create_function('$a,$b', 'return $a / $b;'); extract($_GET); $fn = ${$op}; echo "$x $op $y = " . $fn($x,$y); ?> - Note the above example also illustrates how you can store a function name in a variable.

  17. DB connectivity and processing forms processing sessions & cookies next week …

More Related