IT420: Database Management and Organization PHP –Writing Reusable Code 10 March 2006 Adina Crainiceanu www.cs.usna.edu/~adina Goals Today Writing Reusable code External files Functions Typical Function Presentation string date (string format [, int timestamp]) Return type Function name Parameter type Parameter name Optional parameter(s) Calling a Function $todayDate = date(“d F y”); Note: Function names are NOT case sensitive Variable names are case senstive Writing Reusable Code Example: Typical page header: <html> <head> <title> My Page Name </title> </head> <body bgcolor=“#FFFFF”> Type same code for every page? What if want to change bgcolor? Include files Write code once and save it into a file Include the file in every page Example: header.php <html> <head> <title> <?php echo $pageTitle; ?> </title> </head> <body bgcolor=“#FFFFF”> Include example (cont) index.php <?php $pageTitle = “Adina’s Page”; include (“header.php”); echo “Some content for my page”; ?> Generated HTML Page <html> <head> <title> Adina’s Page </title> </head> <body bgcolor=“#FFFFF”> Some content for my page Include Functions include(string fileName) Includes the content of fileName into current file require(string fileName) Like include() Fatal error if fileName not found! include_once(string fileName) require_once(string fileName) Class Exercise Write the code for a footer in a file Include it in index.php file, to obtain a wellformed HTML document User-Defined Functions Define functions to performs repetitive tasks Examples: Open a database connection and select a database Display the elements of an array as a table … Define a Function function my_function() { echo ‘This is printed by my function’; } Keyword to define a function Function name Function code Calling the Function <?php my_function(); ?> Result: This is printed by my function Function Parameters function my_function($text) { echo $text; } Call: my_function(“Print this text”); Result: Print this text Optional Parameters function my_function($text=“Default text”) { echo $text; } Call: my_function(“Print this text”); Result: Print this text Call: my_function(); Result: Default text Multiple Optional Parameters function start_table($border, $cellspacing=2, $cellpadding=2){ echo “<table border = $border cellspacing = $cellspacing cellpadding = $cellpadding>”; } start_table(1) equivalent start_table(1,2,2) start_table(2,3) equivalent start_table(2,3,2) start_table(2,3,4) Parameter values filled in from left to right! Return Values function add_values($a, $b){ $result = $a + $b; return $result; } Call: $added_val = add_values(4,5); Result: $added_val has value 9 Class Exercise Write a function is_leap to test whether a yar is a leap year or not Return “Yes” if input parameter is leap year Return “No” if input parameter is not a leap year Variables Scope Variables declared in functions are visible from declaration line to end of function – local variables Variables declared outside functions are visible from declaration line to end of file, but not inside functions – global variables Superglobal variables ($_POST, $_SERVER, …) are visible everywhere Keyword global makes local variables global – not recommended Variables Scope Example function fn(){ $var = ‘content’; } fn(); echo $var; Result? Nothing is printed! Variables Scope Example 2 $var = ‘content 1 <br/>’; echo $var; function fn(){ echo $var; $var = ‘content 2 <br/>’; echo $var } fn(); echo $var; Result? content 1 content 2 content 1 Class Exercise Write a function my_dbconnect to open a db connection and select a database Input parameters: db server name user name – optional, default value “root” password – optional, default value “” database name Return value: FALSE if errors occurred database connection if everything OK Class Exercise Write the PHP script to use my_dbconnect Connect to localhost Default user and password Select database vp5fund