PHP user-defined functions (part 2)
An exercise on functions
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
PHP functions
Author: Elena Machkasova elenam@morris.umn.edu
Last modified: 3/14/06
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>
List formatting
</title>
<?php
$fruit = array("apple", "banana", "orange", "grape", "kiwi");
$seasons = array("winter", "spring", "summer", "fall");
// write a function print_list to print
// the array as an ordered list if the boolean is 'true',
// as an unordered list otherwise
?>
</head>
<body>
<h2>Printing out two lists</h2>
<?php
// print an unordered list of fruit
print_list($fruit, false);
// print an ordered list of seasons
print_list($seasons);
?>
</body>
</html>
http://rynite.morris.umn.edu/~elenam/1101_spring08/functions/list.php
Using a function to switch two strings - first attempt
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
PHP functions
Author: Elena Machkasova elenam@morris.umn.edu
Last modified: 3/14/06
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>
Table formatting
</title>
<?php
$string1 = "A shorter string";
$string2 = "A very long string that goes on for a while and then some
until it finally ends at some point long in the future";
// A function that switches the two strings directly in the
// calling program so that the longer one is first.
// the strings are passed by reference
function sort_strings($str1, $str2) {
print "<p>Beginning of the function: $str1, $str2 </p>\n";
$temp = $str1;
$str1 = $str2;
$str2 = $temp;
print "<p>End of the function: $str1, $str2 </p>\n";
}
?>
</head>
<body>
<?php
sort_strings($string1, $string2);
?>
<table border="1">
<tr>
<?php
print "<td style=\"width: 70%\">$string1 </td><td> $string2 </td>\n";
?>
</tr>
</table>
</body>
</html>
http://rynite.morris.umn.edu/~elenam/1101_spring08/functions/string_table_not_working.php
Using a function to switch two strings - pass by reference
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
PHP functions
Author: Elena Machkasova elenam@morris.umn.edu
Last modified: 3/14/06
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>
Table formatting
</title>
<?php
$string1 = "A shorter string";
$string2 = "A very long string that goes on for a while and then some
until it finally ends at some point long in the future";
// A function that switches the two strings directly in the
// calling program so that the longer one is first.
// the strings are passed by reference
function sort_strings(&$str1, &$str2) {
$temp = $str1;
$str1 = $str2;
$str2 = $temp;
}
?>
</head>
<body>
<table border="1">
<tr>
<?php
sort_strings($string1, $string2);
print "<td style=\"width: 70%\">$string1 </td><td> $string2 </td>\n";
?>
</tr>
</table>
</body>
</html>
http://rynite.morris.umn.edu/~elenam/1101_spring08/functions/string_table_reference.php
Switching elements of an array - pass by reference
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
PHP functions
Author: Elena Machkasova elenam@morris.umn.edu
Last modified: 3/13/08
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>
Table formatting
</title>
<?php
$strings = array("A shorter string",
"A very long string that goes on for a while and then some until it
finally ends at some point long in the future");
// a php function
// the function takes an array of two strings switches
// them if needed so that the longer one is first.
// the array is passed by reference (the & in the function header)
function sort_strings(&$str_array) {
if (strlen($str_array[0]) < strlen($str_array[1])) {
$temp = $str_array[0];
$str_array[0] = $str_array[1];
$str_array[1] = $temp;
}
}
?>
</head>
<body>
<table border="1">
<tr>
<?php
sort_strings($strings);
print "<td style=\"width: 70%\"> $strings[0] </td><td> $strings[1] </td>\n";
?>
</tr>
</table>
</body>
</html>
http://rynite.morris.umn.edu/~elenam/1101_spring08/functions/string_table_array.php
UMM CSci 1101