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

Powering Scripts with Functions PowerPoint PPT Presentation


  • 108 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

Powering Scripts with Functions

David Lash

Chapter 4

Using and writing your own functions


Objectives

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

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

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

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

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

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

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

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

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

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

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

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


Objectives1

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

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 with print

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


Objectives2

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

  • 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

    Selected character formats for date()


    More about 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 example1

    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

    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 Output ...

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


    Create your own functions

    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

    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

    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

    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

    Would have the following output …


    Tip use comments at the start of a function

    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

    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

    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

    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

    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

    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 example2

    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

    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

    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

    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

    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

    Would output the following ...


    More typical use of external code files

    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

    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

    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

    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

    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>


    Summary1

    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