Functions in PHP

34
www.hope.ac.uk Faculty of Sciences and Social Sciences HOPE Functions in PHP Stewart Blakeway FML 213 [email protected] 0151 291 3113

description

Functions in PHP. Stewart Blakeway FML 213 [email protected] 0151 291 3113. Session Aims. How to define a function How to call a function Passing and Receiving Values to/from functions Function Variables and Global Variables Giving a function storage Functions within Functions - PowerPoint PPT Presentation

Transcript of Functions in PHP

Page 1: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEFunctions in PHP

Stewart BlakewayFML [email protected] 291 3113

Page 2: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PESession Aims

– How to define a function– How to call a function– Passing and Receiving Values to/from

functions– Function Variables and Global

Variables– Giving a function storage– Functions within Functions– Checking a function exists before

calling it

Page 3: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEWhat is a function?

• A function is a self-contained block of code that can be used time and time again.

• Values can be passed to functions.• Functions, once finished executing can pass

values back to the calling code.

Page 4: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PETypes of function

• There are two types of function. You have seen one type already and may or may not of known it was a function.

– Built-in functions– Self defined functions

Page 5: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEBuilt-in Functions

echo (“Hello World!”);

• echo is the name of the function that you are calling.

• Hello World! is a string that we are passing to the function.

• Information that you want to pass to the function should be between the parentheses.

How many built in functions are there?

Page 6: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEArguments!

• The terminology that explains the data that is to be passed to the function is called an argument. Some functions require more than one argument.

my_function ($an_argument, $another_argument);

Page 7: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEdate ()

• Date () is another example of a built in function. Lets examine how this works.

$today = date ("l j F" );echo $today;

• date () uses lots of symbols to represent different formats. ie: M,F,m,n,d,j,l,D,w,Y…

Page 8: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEdate ()

$today = date ("l j F" );echo $today;

• Functions that return a value do not necessarily have to be stored.

echo (date ("l j F" ));

Page 9: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEdate ()

$today = date ("l j F" );echo $today;

What data type is $today ?

How could we find out?

$today = date ("l j F" );echo $today;

echo (gettype($today));

Page 10: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEFunction function function

echo (gettype(date("l j F" )));

What do you think is echo’d ?

Page 11: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEDefining a function• You can define a function by using the

function statement

function function_name ($argument1, $argument2 …) {

// function code goes here}

Page 12: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEDefining a function

• What is echoed out?

<?phpfunction bigfont($txt) { echo("<h1>" . $txt . "</h1>"); }

bigfont ("Hello World!");?>

Page 13: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEtt function• Examine the following code, what

does it echo out?

function tt($num) { for ( $x=1 ; $x<13 ; $x++ ) { echo ($x . “*” . $num . “=” .

$x*$num .“<br />”); } }tt (6);

Page 14: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEMore about variables!

<html><head><title>Local Variables</title></head><body><?php$life=42;function meaningOfLife ()

{echo (“The meaning of life is”. $life);}

meaningOfLife();?></body></html>

Page 15: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEMore about variables!

<html><head><title>Global Variables</title></head><body><?php$life=42;function meaningOfLife ()

{global $life;echo (“The meaning of life is”. $life);}

meaningOfLife();?></body></html>

Page 16: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEAlternatively

<html><head><title>Local Variables</title></head><body><?php$life=42;function meaningOfLife ($arg)

{echo ("The meaning of life is". $arg);}

meaningOfLife($life);?></body></html>

Page 17: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEQuestion

• Why not always pass variables to functions and do away with global variables?

Sometimes you will want to remember a value of a variable even if a function has finished or manipulate a variable outside of a function

Page 18: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PENumbered Headings

<?php$numOfHeading=1;function numHeading ($heading)

{global $numOfHeading;echo ("<h2>" . $numOfHeading . " . " . $heading . "</h2>"

);$numOfHeading++;}

numHeading ("About Me!");echo ("<p>Stewart Blakeway<br />0151 291 3113</p>");numHeading ("Currently Teaching On");echo ("<ul> <li>Computing Concepts</li><li>Database Technology</li><li>IT Business Applications</li><li>Web Development</li><li>Network & Operating Systems</li></ul>");?>

Page 19: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEQuestion

• Although the last example got the point across, Global variables should be avoided and only used as the last resort!

• Why do you think this is?

The beauty of functions is their versatility, take the echo function as an example. This is a function of code that can be used again and again. Global variables hinder the flexibility that functions offer!

Page 20: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PENumbered Headings Alternative

<?php

function numHeading ($heading){static $numOfHeading = 1;echo ("<h2>" . $numOfHeading . " . " . $heading . "</h2>"

);$numOfHeading++;}

numHeading ("About Me!");echo ("<p>Stewart Blakeway<br />0151 291 3113</p>");numHeading ("Currently Teaching On");echo ("<ul> <li>Computing Concepts</li><li>Database Technology</li><li>IT Business Applications</li><li>Web Development</li><li>Network & Operating Systems</li></ul>");?>

Page 21: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEMore than One Argument

• So far we have seen functions that pass one argument

• PHP can pass as many arguments as you define

• The results of an argument can be returned

Page 22: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEReturning a result

<?phpfunction mySum($num1, $num2) { $total = $num1 + $num2; return $total; }

$myNumber = 0;$myNumber = mySum(3, 4);echo $myNumber;?>

We saw this in slides 7 and 8

Page 23: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEPassing Two Arguments

<?php

function nSFont ($txt, $size) { echo ("<font size=\"$size\" face=\"Helvetica,

Arial, Sans-Serif\“>$txt</font><br />"); }

nSFont ("A heading",12);nSFont ("some body text",3);nSFont ("some more body text",3);

?>

Page 24: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE<?php

function nSFont ($txt, $size) { echo ("<font size=\"$size\" face=\"Helvetica,

Arial, Sans-Serif\“>$txt</font><br />"); }

nSFont ("A heading“,12);nSFont ("some body text");nSFont ("some more body text");

?>

What do you suppose would happen if the function was set to accept two arguments and only one was passed?

A headingWarning: Missing argument 2 for nsfont() in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 6some body text

Warning: Missing argument 2 for nsfont() in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 6some more body text

Page 25: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEDefault Arguments

<html><head><title>Local Variables</title></head><body>

<?php

function nSFont ($txt, $size = 3) { echo ("<font size=\"$size\" face=\"Helvetica, Arial, Sans-

Serif\“> $txt</font><br />"); }

nSFont ("A heading",12);nSFont ("some body text");nSFont ("some more body text");

?></body></html>

Page 26: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEWhat will be echoed out?

<html><head><title>Local Variables</title></head><body>

<?php

function squared($num) { $num = ($num * $num); echo ($num."<br />"); }

$num = 30;squared ($num);echo ($num."<br />");

?>

</body></html>

Page 27: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEWhat will be echoed out?

<html><head><title>Local Variables</title></head><body><?php

function squared (&$num) { $num = ($num * $num); echo ($num."<br />"); }

$num = 30;squared ($num);echo ($num."<br />");

?></body></html>

Page 28: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEWhat will be echoed out?

<html><head><title>Local Variables</title></head><body>

<?php

function squared (&$joe) { $joe = ($joe * $joe); echo ($joe."<br>"); }

$num = 30;squared ($num);echo ($num."<br>");

?></body></html>

Page 29: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEChecking a function exists

<?phpfunction mySum($num1, $num2)

{ $total = $num1 + $num2; return $total;

}if (function_exists (mysum))

{$myNumber = mySum(3, 4);echo $myNumber;}

else{echo ("Function not available");}

?>

Page 30: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEWhat next?

• Seminar– More exercises, specifically defining functions and

calling functions• Next Lecture– This is on arrays, associate arrays,

multidimensional arrays, classes, methods.. And more… don’t miss this as its not easy!

Page 31: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEtt function – 3 Errors

function tt($num)

for ( $x=1 ; $x<13 ; $x++ ) { echo (x . “*” . $num . “=” .

$x*$num . “<br />”); }

tt 6;

Page 32: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PE3 Errors

<html><head><title>Global Variables</title></head><body><?php$life=42;function meaningOfLife () { Global $life; echo (“The meaning of life is” $life); }meaningOfLife();></body></html>

Page 33: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PENumbered Headings – 3 Errors

<?php

function numHeading($heading) { fixed $numOfHeading = 1; echo ("<h2>" . $numOfHeading . " . " . $heading . "</h2>" ); $numOfHeading++; }numHeading ("About Me!");echo ("<p>Stewart Blakeway<br />0151 291 3113</p>");numheading ("Currently Teaching On");echo ("<ul><li>Computing Concepts</li><li>Database Technology</li><li>IT Business Applications</li><li>Web Development</li><li>Network & Operating Systems</li>");?>

Page 34: Functions in PHP

www.hope.ac.uk Faculty of Sciences and Social Sciences

HO

PEAny Questions?