<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
PHP datatypes and operations
Author: Elena Machkasova elenam@morris.umn.edu
Last modified: 2/14/2011
-->
<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>
Examples of PHP datatypes and operations
</title>
</head>
<body>
<h2>This page demonstrates PHP datatypes</h2>
<p>
<?php
// integers
$n = 2;
$m = 3;
$sum = $n + $m;
// printing
print "$n + $m = $sum<br/>\n";
echo "$n + $m", " = ", $sum, "<br/>\n"; // multiple arguments
$prod = $n * $m;
$div = $n / $m;
$remainder = $n % $m;
print "$n * $m = $prod<br/>\n $n / $m = $div<br/>\n $n % $m = $remainder<br/>\n";
// float type
$x = 3.14;
$y = 2e-2;
print "\$x = $x, \$y = $y<br/>\n";
$sum = $x + $y; // $sum was used as an integer, now is used as a float
$div = $x / $y;
print "$x + $y = $sum<br/>\n $x / $y = $div<br/>\n";
print "Formatted result: $n / $m = ".number_format($div, 2)."<br/>\n";
// adding an integer and a float gives you a float
$sum = $x + $m;
print "$x + $m = $sum<br/>\n";
// booleans
print "$n < $m = ".($n < $m)."<br/>\n";
print "$m < $n = ".($m < $n)."<br/>\n";
// the syntax for if-else statement
if ($n < $m) {
print "Case 1<br/>\n";
} elseif ($n == $m) {
print "Case 2<br/>\n";
} else {
print "Case 3<br/>\n";
}
// strings
$greeting = "Hello";
$monkeys = "5 little monkeys";
// string concatenation
print $greeting.", ".$monkeys."<br/>\n";
// comparison
print "5 == $monkeys".(5 == $monkeys)."<br/>\n";
print "5 === $monkeys".(5 === $monkeys)."<br/>\n";
// typecasting
print "\"$monkeys\" converted to different types:<br/>\n";
print "int: ".(int)$monkeys."<br/>\n";
print "boolean: ".(boolean)$monkeys."<br/>\n"; // or (bool)
print "float: ".(float)$monkeys."<br/><br/>\n";
// automatic type conversion:
$sum = $m + $monkeys; // since $monkeys starts with 5, it's added as 5
print "$sum<br/>\n";
$sum = $m + $greeting1; // $greeting1 doesn't start with a number, added as 0
print "$sum<br/>\n";
// the result of gettype is system-dependent
print "results of gettype are system-dependent, don't apply string comparison!!!!<br />\n";
print "gettype($n) = ".gettype($n)."<br/>\n";
print "gettype($n < $m) = ".gettype($n < $m)."<br/>\n";
print "gettype($monkeys) = ".gettype($monkeys)."<br/><br />\n";
print "print_r is used to print a value of any type<br />\n";
print_r($monkeys);
print "<br/><br />\n";
print "var_dump gives you the most exact type info and the value<br />";
var_dump($monkeys, $n < $m);
print "<br/><br />\n";
// predefined boolean typechecking functions
print "(is_string(5)) = ".(is_string(5))."<br/>\n";
print "(is_string(\"5\")) = ".(is_string("5"))."<br/>\n";
// unsetting variables and checking whether they are set
if (isset($n)) print "\$n is set<br/>\n";
if (isset($banana)) print "\$banana is set<br/>\n";
unset($n);
if (isset($n)) print "\$n is set<br/>\n";
// empty() tests if a variable equals to false
$zero = 0;
$false = false;
$emptystr = "";
print "empty($zero) = ".empty($zero)."<br/>\n";
print "empty($false) = ".empty($false)."<br/>\n";
print "empty($emptystr) = ".empty($emptystr)."<br/>\n";
// arrays are one-dimensional associative
$numbers = array(1, 2, 3);
print_r($numbers);
print "<br/>\n";
for ($i = 0; $i < count($numbers); ++$i) {
print $numbers[$i]."<br/>\n";
}
$numbers[5] = 5;
unset ($numbers[1]);
print_r($numbers);
print "<br/>\n";
foreach($numbers as $number) {
print $number."<br/>\n";
}
$stuff = array("One", true, 3);
print_r($stuff);
print "<br/>\n";
$schedule = array("Monday" => "sleep", "Tuesday" => "go to class", "Sunday" => "have fun");
print_r($schedule);
print "<br/>\n";
print $schedule["Sunday"];
print "<br/>\n";
foreach($schedule as $key => $value) {
print "On $key I $value <br/>\n";
}
// 2-D arrays
$twod = array(array(1, 2, 3), array("apple" => "red", "banana" => "yellow"));
print_r($twod);
print "<br/>\n";
print $twod[1]["banana"];
print "<br/>\n";
function add2($var) {
return $var + 2;
}
print add2(5);
print "<br/>\n";
// pass by reference
function changevar(&$var) {
$var += 2;
}
$n = 5;
changevar($n);
print $n."<br/>\n";
// arrays need to be passed by reference if they need to be changed
function addOneToArrayElements(&$thearray) {
foreach($thearray as $key => $value) {
$thearray[$key] = $value + 1;
}
}
$arr = array (2,4,-2);
print_r($arr);
addOneToArrayElements($arr);
print_r($arr);
?>
</p>
</body>
</html>
http://csci1101sp10.morris.umn.edu/~elenam/tmp4657sp11/php_basics.php