HOPE Functions in PHP Stewart Blakeway FML 213 [email protected] 0151 291 3113 www.hope.ac.uk Faculty of Sciences and Social Sciences HOPE 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 Checking a function exists before calling it www.hope.ac.uk Faculty of Sciences and Social Sciences What is a function? HOPE • 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 Types of function HOPE • 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 Built-in Functions How many built in functions are there? echo (“Hello World!”); HOPE • 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. www.hope.ac.uk Faculty of Sciences and Social Sciences Arguments! HOPE • 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 date () HOPE • 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 date () HOPE $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 date () $today = date ("lWhat j data F" type ); is $today ? echo $today; HOPE 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 Function function function echo (gettype(date("l j F" ))); HOPE What do you think is echo’d ? www.hope.ac.uk Faculty of Sciences and Social Sciences Defining a function • You can define a function by using the function statement HOPE function function_name ($argument1, $argument2 …) { // function code goes here } www.hope.ac.uk Faculty of Sciences and Social Sciences Defining a function HOPE • What is echoed out? <?php function bigfont($txt) { echo("<h1>" . $txt . "</h1>"); } bigfont ("Hello World!"); ?> www.hope.ac.uk Faculty of Sciences and Social Sciences tt function • Examine the following code, what does it echo out? HOPE 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 More about variables! <html> <head><title>Local Variables</title></head> <body> <?php $life=42; HOPE function meaningOfLife () { echo (“The meaning of life is”. $life); } meaningOfLife(); ?> </body> </html> www.hope.ac.uk Faculty of Sciences and Social Sciences More about variables! HOPE <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 Alternatively HOPE <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 Question HOPE • 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 Numbered Headings HOPE <?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 Question HOPE • 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 Numbered Headings Alternative <?php HOPE 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 More than One Argument HOPE • 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 Returning a result HOPE <?php function mySum($num1, $num2) { $total = $num1 + $num2; return $total; } $myNumber = 0; We saw this in $myNumber = mySum(3, 4); slides 7 and 8 echo $myNumber; ?> www.hope.ac.uk Faculty of Sciences and Social Sciences Passing Two Arguments <?php HOPE 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 <?php What do you suppose would happen if the function was set to accept two arguments and only one was passed? function nSFont ($txt, $size) { echo ("<font size=\"$size\" face=\"Helvetica, Arial, Sans-Serif\“>$txt</font><br />"); } Warning: Missing argument 2 for nsfont() in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 6 nSFont ("A heading“,12); some body text nSFont ("some body text"); nSFont ("some more2 body text"); Warning: Missing argument for nsfont() in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 6 some ?>more body text HOPE A heading www.hope.ac.uk Faculty of Sciences and Social Sciences Default Arguments <html><head><title>Local Variables</title></head><body> <?php HOPE function nSFont ($txt, $size = 3) { echo ("<font size=\"$size\" face=\"Helvetica, Arial, SansSerif\“> $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 What will be echoed out? <html><head><title>Local Variables</title></head><body> <?php HOPE 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 What will be echoed out? <html><head><title>Local Variables</title></head><body> <?php HOPE 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 What will be echoed out? <html><head><title>Local Variables</title></head><body> <?php HOPE 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 Checking a function exists HOPE <?php function 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 What next? • Seminar – More exercises, specifically defining functions and calling functions HOPE • 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 tt function – 3 Errors HOPE 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 3 Errors HOPE <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 Numbered Headings – 3 Errors <?php HOPE 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 HOPE Any Questions? www.hope.ac.uk Faculty of Sciences and Social Sciences
© Copyright 2026 Paperzz