functions in php
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 PresentationTRANSCRIPT
www.hope.ac.uk Faculty of Sciences and Social Sciences
HO
PEFunctions in PHP
Stewart BlakewayFML [email protected] 291 3113
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
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.
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
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?
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);
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…
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" ));
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));
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 ?
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}
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!");?>
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);
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>
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>
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>
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
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>");?>
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!
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>");?>
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
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
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);
?>
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
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>
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>
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>
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>
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");}
?>
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!
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;
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>
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>");?>
www.hope.ac.uk Faculty of Sciences and Social Sciences
HO
PEAny Questions?