Powering scripts with functions
Sponsored Links
This presentation is the property of its rightful owner.
1 / 46

Powering Scripts with Functions PowerPoint PPT Presentation


  • 114 Views
  • Uploaded on
  • Presentation posted in: General

Powering Scripts with Functions. David Lash Chapter 4 Using and writing your own functions. Objectives. Introduce this notion of a function Some basic numeric PHP functions—E.g., sqrt(), round(), is_numeric(), and rand(). The print() function The date() function.

Download Presentation

Powering Scripts with 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Powering Scripts with Functions

David Lash

Chapter 4

Using and writing your own functions


Objectives

  • Introduce this notion of a function

    • Some basic numeric PHP functions—E.g., sqrt(), round(), is_numeric(), and rand().

    • The print() function

    • The date() function.

  • See what we can do for ourselves


Using Some Basic PHP Functions

  • PHP has a bunch of built-in functions.

    • They do things automatically for you:

    • For example,

      • print (“Hello World”);

      • We will look at other functions that do things for you

Creates output with its one argument

(or input variable).

Name of function


The sqrt() Function – Just to warm-up …

  • sqrt() - input a single numerical argument and returns its square root.

  • For example, the following

    • $x=sqrt(25);

    • $y=sqrt(24);

    • print "x=$x y=$y";

  • Will output

    • x=5 y=4.898979485566

      $y=144;

      $num = sqrt($y);

Function

name

Argument or parameter

to function

Returned value


The round() Function

  • round() - rounds number to nearest integer

  • For example, the following

    • $x=round(-5.456);

    • $y=round(3.7342);

    • print "x=$x y=$y";

  • Will outputx=-5 y=4


True/false Return values

  • So far functions have either returned nothing (e.g., print() ) or a number (e.g., round() )

  • Functions can also return a true or false value.

    • True is sometimes thought of 1 and false of 0

    • These are called boolean returned

  • Why would you do this? ….

    • Makes testing something easy

      if ( got_a_number() ) { do stuff

      }

    • Lets look at a true/false function ….

This is just an example it is not a valid statement


The is_numeric() Function

  • is_numeric() determines if a variable is a valid number or a numeric string.

    • It returns true or false.

  • Consider the following example...

    if (is_numeric($input)) {

    print "Got Valid Number=$input";

    } else {

    print "Not Valid Number=$input";

    }

  • If $input was“6” then would : Got Valid Number=6

  • If $inputwas “Happy” then would output: Not Valid Number=Happy

Could use to test if input was string or numeric


Remember this … Consider average example

<html>

<head>

<title>Survey Form</title>

</head>

<body>

<h1>Class Survey</h1>

<FORM METHOD="POST" ACTION="newaverage.php">

<br>Pick A Number: <BR> <input type=text name=num1>

<br>Pick A Number 2: <BR><input type=text name=num2>

<br>Pick A Number 3: <BR><input type=text name=num3>

<br><input type="submit" value="Submit">

<input type="reset" value="Erase">

</form>

</BODY>

</HTML>


PHP Code

  • <html> <head> <title> Guess the Dice </title>

  • <body>

  • <Font size=5 color=black> Your Averages Are:</font>

  • <form action="guessdice2.php" method=post>

  • <?php

  • $num1 = $_POST[num1];

  • $num2 = $_POST[num2];

  • $num3 = $_POST[num3];

  • if ( !is_numeric($_POST[num1]) || !is_numeric($_POST[num2]) || !is_numeric($_POST[num3]) ){

  • print "Error please fill in numericaly values for all three inputs";

  • print "num1=$num1 num2=$num2 num3=$num3";

  • exit;

  • }

  • $aver = ($num1 + $num2 + $num3 ) / 3;

  • print "<font size=4 color=blue>";

  • print "num1 = $num1 ";

  • print "num2 = $num2 ";

  • print "num3 = $num3 ";

  • print "</font> <br> <font size=4 color=red>";

  • print "<br>aver = $aver";

  • print "</font> ";

  • ?>

  • <br>

  • </form> </body> </html>

http://condor.depaul.edu/~dlash/extra/Webpage/examples/newaverage.html


The rand() Function – can be fun

  • Userand()to generate a random number.

    • You can use random numbers to simulate a dice roll or a coin toss or to randomly select an advertisement banner to display.

  • rand()gen a number from 1 to max number.

    • E.g.,

      $num = rand();

      print ”num=$num”

      • Might output …

        num = 12


The rand() Function - Part II

  • Use the rand() to generate a number 1-6

    • $numb = rand();

    • $rnumb = ($numb % 6) + 1;

    • print "Your random dice toss is $rnumb";

  • The random number generated in this case can be a 1, 2, 3, 4, 5, or 6.

Think a second …

Asks for remainder of $numb / 6

which is always 0,1,2,3,4, or 5 so you add 1

to force it to be 1,2,3,4,5, or 6


A Full Example ...

  • Consider the following application:

    • Uses an HTML form to ask the end-user to guess the results of dice roll:

    • <input type="radio" name=”guess" value=”1"> 1

    • <input type="radio" name=”guess" value=”2"> 2

    • <input type="radio" name=”guess" value=”3"> 3

    • <input type="radio" name=”guess" value=”4"> 4

    • <input type="radio" name=”guess" value=”5"> 5

    • <input type="radio" name=”guess" value=”5"> 6

    • http://condor.depaul.edu/~dlash/extra/Webpage/examples/guessdice.php


Consider the following ...

<head> <title> Guess the Dice </title>

<body>

<?php

$guess = $_POST["guess"];

if ( $guess >= 1 && $guess <=6 ) {

$numb = rand() % 6 + 1;

print "numb=$numb <br>";

$dice="dice$numb.gif";

print "The Random Dice Generated Is ...";

print "<img src=$dice>";

print " <br> Your Dice=$dice <br>";

if ( $guess == $numb ) {

print "<br><font size=4 color=blue> You got it right ";

print "<br> <font size=4 color=blue> Your Guess is $guess ";

} else {

print "<br> <font size=4 color=red> You got it WRONG ? ";

print "<br><font size=4 color=red> Your Guess is $guess ";

}

} else {

print "Illegal Value For Guess=$guess";

}

?>

</form> </body> </html>

Generate random number 1-6

Set which image to display

Display either dice1.gif, dice2,gif, dice3.gif,

dice4.gif, dice5.gif, or dice6.gif

Check to see if got it right or wrong


Objectives

  • To learn to use several PHP functions useful for Web application development

    • Some basic numeric PHP functions—E.g., sqrt(), round(), is_numeric(), and rand().

    • The print() function

    • The date() function.

  • To learn to write and use your own functions


More information on the print() Function

  • You don’t need to use parenthesis with print()

  • Double quotes means output the value of any variable:

    • $x = 10;

    • print ("Mom, please send $x dollars");

  • Single quotes means output the actual variable name

    • $x = 10;

    • print ('Mom, please send $x dollars');

  • To output a single variable’s value or expression, omit the quotation marks.

    • $x=5;

    • print $x*3;

Double quotes “

Single quotes ‘


Generating HTMLTags withprint()

  • Using single or double quotation statements can be useful when generating HTML tags

    • print '<font color="blue">';

  • This above is easier to understand and actually runs slightly faster than using all double quotation marks and the backslash (\) character :

    • print "<font color=\"blue\">";

using \ allows “ to be output


Objectives

  • To learn to use several PHP functions useful for Web application development

    • Some basic numeric PHP functions—E.g., sqrt(), round(), is_numeric(), and rand().

    • The print() function

    • The date() function.

  • To learn to write and use your own functions


The date() Function

  • The date() function is a useful function for determining the current date and time

  • The format string defines the format of the date() function’s output:

    • $day = date('d');

    • print "day=$day";

  • If executed on December 27, 2001, then it would output “day=27”.

  • Request date() to return the

    numerical day of the month.


    Selected character formats for date()


    More About date()

    • You can combine multiple character formats return more than one format from thedate()

      • For example,

      • $today = date( 'l, F d, Y');

      • print "Today=$today";

    • On MQY 11, 2004, would output

      • “Today=Tuesday, May 11, 2004”.


    A Full Example ...

    • Consider the following Web application that uses date() to determine the current date and the number of days remaining in a store’s sale event.

      • Sale runs from 12/1 until 1/10/02


    Receiving Code

    1. <html> <head><title> Our Shop </title> </head>

    2. <body> <font size=4 color="blue">

    3. <?php

    4. $today = date( 'l, F d, Y');

    5. print "Welcome on $today to our huge blowout sale! </font>";

    6. $month = date('m');

    7. $year = date('Y');

    8. $dayofyear = date('z');

    9. if ($month == 12 && $year == 2001) {

    10. $daysleft = (365 - $dayofyear + 10);

    11. print "<br> There are $daysleft sales days left";

    12.} elseif ($month == 01 && $year == 2002) {

    13. if ($dayofyear <= 10) {

    14. $daysleft = (10 - $dayofyear);

    15. print "<br> There are $daysleft sales days left";

    16. } else {

    19. print "<br>Sorry, our sale is over.";

    20. }

    21. } else {

    22. print "<br>Sorry, our sale is over.";

    23. }

    24. print "<br>Our Sale Ends January 10, 2002";

    25. ?> </body></html>

    Get a date in format day of week,

    month, day and year

    Get month number 1-12, ,

    4 digit year and day of year

    Check if its Dec 2001.

    Then figure out days left in year

    and add 10.

    If if 1/2002 already, how many days

    left before 1/10?

    Otherwise sale is ove.


    The Output ...

    The previous code can be executed at http://webwizard.aw.com/~phppgm/C3/date.php


    Create your own functions ...

    • Write your own function to

      • group a set of statements, set them aside, and turn them into mini-scripts within a larger script.

    • The advantages are

      • Scripts that are easier to understand and change.

      • Reusable script sections.

      • Smaller program size


    Writing Your Own Functions

    • Use the following general format

      function function_name() {

      set of statements

      }

    Include parentheses

    at the end of the

    function name

    Use the keyword function here

    The function runs

    these statements

    when called

    Enclose in curly

    brackets.


    For example …

    • Consider the following:

      function OutputTableRow() {

      print '<tr><td>One</td><td>Two</td></tr>';

      }

    • You can run the function by including …

      OutputTableRow();


    As a full example …

    1. <html>

    2. <head><title> Simple Table Function </title> </head> <body>

    3. <font color="blue" size="4"> Here Is a Simple Table <table border=1>

    4. <?php

    5. function OutputTableRow() {

    6. print '<tr><td>One</td><td>Two</td></tr>';

    7. }

    8. OutputTableRow();

    9. OutputTableRow();

    10. OutputTableRow();

    11. ?>

    12. </table></body></html>

    OutputTableRow()

    function definition.

    Three consecutive calls

    to the OutputTableRow()

    function


    Would have the following output …


    TIPUse Comments at the Start of a Function

    • It is good practice to place comments at the start of a function

    • For example,

      function OutputTableRow() {

      // Simple function that outputs 2 table cells

      print '<tr><td>One</td><td>Two</td></tr>';

      }


    Passing Arguments to Functions

    • Input variables to functions are calledarguments to the function

    • For example, the following sends 2 arguments

      • OutputTableRow("A First Cell", "A Second Cell");

    • Within function definition can access values

      function OutputTableRow($col1, $col2) {

      print "<tr><td>$col1</td><td>$col2</td></tr>";

      }


    Consider the following code …

    1. <html>

    2. <head><title> Simple Table Function </title> </head> <body>

    3. <font color="blue" size=4> Revised Simple Table <table border=1>

    4. <?php

    5. function OutputTableRow( $col1, $col2 ) {

    6. print "<tr><td>$col1</td><td>$col2</td></tr>";

    7. }

    • OutputTableRow( ‘Row 1 Col 1’ , ‘Row 1 Col 2’ );

    • OutputTableRow( ‘Row 2 Col 1’ , ‘Row 2 Col 2’ );

    • OutputTableRow( ‘Row 3 Col 1’ , ‘Row 3 Col 2’ );

    • OutputTableRow( ‘Row 4 Col 1’ , ‘Row 4 Col 2’ );

      12. ?>

      13. </table></body></html>

    OutputTableRow()

    Function definition.

    Four calls to

    OuputTableRow()


    Returning Values

    • Your functions can return data to the calling script.

      • For example, your functions can return the results of a computation.

    • You can use the PHP return statement to return a value to the calling script statement:

      return $result;

    This variable’s value will be returned to the calling script.


    Example function

    1. function Simple_calc( $num1, $num2 ) {

    2. // PURPOSE: returns largest of 2 numbers

    3. // ARGUMENTS: $num1 -- 1st number, $num2 -- 2nd number

    4. if ($num1 > $num2) {

    5. return($num1);

    6. } else {

    7. return($num2);

    8. }

    9. }

    What is output if called as follows:

    $largest = Simple_calc(15, -22);

    Return $num1 when it is the larger value.

    Return $num2 when it is the larger value.


    Consider an application that …

    Main form element:

    Starting Value: <input type="text" size="15” maxlength="20" name="start">

    Ending Value: <input type="text" size="15 maxlength="20" name="end">


    A Full Example ...

    • Consider a script that calculates the percentage change from starting to an ending value

    • Uses the following front-end form:

      Starting Value: <input type="text" size="15”

      maxlength="20" name="start">

      Ending Value: <input type="text" size="15”

      maxlength="20" name="end">

    http://webwizard.awl.com/~phppgm/C4/driveperc.html


    The Source Code

    1. <html>

    2. <head><title> Your Percentage Calculation </title></head><body>

    3. <font color="blue" size=4> Percentage Calculator </font>

    4. <?php

    5. function Calc_perc($buy, $sell) {

    6. $per = (($sell - $buy) / $buy) *100;

    7. return($per);

    8. }

    9. $start = $_POST[“start”]; $end = $_POST[“end”];

    10. print "<br>Your starting value was $start.";

    11. print "<br>Your ending value was $end.";

    12. if (is_numeric($start) && is_numeric($end) ) {

    13. if ($start != 0) {

    14. $per = Calc_perc($start, $end);

    15. print "<br> Your percentage change was $per %.";

    16. } else { print "<br> Error! Starting values cannot be zero "; }

    17. } else {

    18. print "<br> Error! You must have valid numbers for start and end ";

    19. }

    20. ?> </body></html>

    Calculate the percentage

    change from the starting

    value to the ending value.

    The call to Calc_perc()

    returns the percentage

    change into $per.


    Using External Script Files

    • Sometime you will want to use scripts from external files.

      • Reuse code from 1 situation to another

      • Create header and footer sections for code

    • PHP supports 2 related functions:

      require ("header.php");

      include ("trailer.php");

    • Both search for the file named within the double quotation marks and insert its PHP, HTML, or JavaScript code into the current file.

    The require() function

    produces a fatal

    error if it can’t

    insert the specified file.

    The include() function

    produces a warning

    if it can’t

    insert the specified file.


    Consider the following example

    1. <font size=4 color="blue">

    2. Welcome to Harry’s Hardware Heaven!

    3. </font><br> We sell it all for you!<br>

    4. <?php

    5. $time = date('H:i');

    6. function Calc_perc($buy, $sell) {

    7. $per = (($sell - $buy ) / $buy) * 100;

    8. return($per);

    9. }

    10. ?>

    The script will output

    these lines when the

    file is included.

    The value of $time will be set

    when the file is included.

    This function will

    be available for

    use when the file

    is included.


    header.php

    • If the previous script is placed into a filecalled header.php …

      1.<html><head><title> Hardware Heaven </title></head> <body>

      2. <?php

      3. include("header.php");

      4. $buy = 2.50;

      5. $sell = 10.00;

      6. print "<br>It is $time.";

      7. print "We have hammers on special for \$$sell!";

      8. $markup = Calc_perc($buy, $sell);

      9. print "<br>Our markup is only $markup%!!";

      10. ?>

      11. </body></html>

    Include the file header.php

    Calc_perc() is defined in

    header.php


    Would output the following ...


    More Typical Use ofExternal Code Files

    • More typically might use one or more files with only functions and other files that contain HTML

    • For example, might use the following as footer.php.

      <hr>

      Hardware Harry's is located in beautiful downtown Hardwareville.

      <br>We are open every day from 9 A.M. to midnight, 365 days a year.

      <br>Call 476-123-4325. Just ask for Harry.

      </body></html>

    • Can include using:

      <?php include("footer.php"); ?>


    Even More Practical Example

    • Check out the following linkhttp://condor.depaul.edu/~dlash/website/Indellible_Technologies.php

    • Original found at perl-pgm.com

    • Could hard code header in each file that needs it or …

      • Separate the header info into a different file (Say header.php.)

      • Include it everywhere needed.

      • E.g., <include “header.php”>

        <html>

        <head>

        <title>Indellible Technologies</title>

        </head>

        <body text="#000000" bgcolor="#ffffff" link="#000099" vlink="#990099"

        alink="#000099">

        <?php include "header.php" ?>


    Here is contents of header.php

    <table cellpadding="0" cellspacing="0" border="0" width="100%">

    <tbody>

    <tr>

    <td valign="top"> <img src="INdelliblecolor3.gif" alt="" width="792"

    height="102">

    <br>

    </td>

    </tr>

    </tbody>

    </table>

    <table cellpadding="0" cellspacing="0" border="0" width="792">

    <tbody>

    <tr>

    <td valign="bottom" bgcolor="#33ffff" align="center"><a

    href="requestinfo.html">Request Information</a> | <a

    href="preregister.html">Pre-register</a> |

    <a href="schedule.html">CourseCatalog</a> |

    &nbsp;<a href="comments.html">Testimonials</a><br>

    </td>

    </tr>

    </tbody>

    </table>


    Summary

    • To learn to use several PHP functions useful for Web application development

      • Some basic numeric PHP functions—E.g., abs(), sqrt(), round(), is_numeric(), and rand().

      • The print() function

      • The date() function.

    • To learn to write and use your own functions

      • Writing own functions

      • returning values

      • Passing arguments


    Here is the receiving code ...

    <<html> <head> <title> Receiving Script </title> <body>

    <?php

    $passwd= $_POST["pass"];

    $fname= $_POST["fname"];

    if ($passwd == "password" ) {

    print "Thank you $fname welcome <br>";

    print "Here is my site's content";

    } else {

    print "Hit the road jack you entered password=$passwd<br>";

    print "Contact someone to get the passwd";

    }

    ?>

    </body> </html>


    Summary

    • Looked at using conditional statements

      • if statement

      • elsif statement

      • else statement

    • conditional statements have different format

      if ( $x < 100 ) {

      $x = $y + 1;

      $z = $y + 2;

      }

    • Can do multiple tests at once:

      if ( $x < 100 && $name = “george” ) {

      $x = $y + 1;

      $z = $y + 2;

      }

    • Can test if variable(s) set from form

    • if ( !$_POST[‘var1’] || !$_POST[‘var1’] ) {


  • Login