Except where otherwise noted, the contents of this presentation are Copyright 2010 Marty Stepp and Jessica Miller.
NULL
$name = "Victoria";
$name = NULL;
if (isset($name)) {
	print "This line isn't going to be reached.\n";
}
				
			$name = array(); # create $name = array(value0, value1, ..., valueN); $name[index] # get element value $name[index] = value; # set element value $name[] = value; # append
$a = array(); # empty array (length 0) $a[0] = 23; # stores 23 at index 0 (length 1) $a2 = array("some", "strings", "in", "an", "array"); $a2[] = "Ooh!"; # add string to end (at index 5)
| function name(s) | description | 
|---|---|
							count
						 | 
						number of elements in the array | 
							print_r
						 | 
						print array's contents | 
							array_pop,
							array_push, array_shift,
							array_unshift
						 | 
						using array as a stack/queue | 
							in_array,
							array_search,
							array_reverse, sort,
							rsort,
							shuffle
						 | 
						searching and reordering | 
							array_fill,
							array_merge,
							array_intersect, array_diff,
							array_slice,
							range
						 | 
						creating, filling, filtering | 
							array_sum,
							array_product,
							array_unique, array_filter,
							array_reduce
						 | 
						processing elements | 
$tas = array("MD", "BH", "KK", "HM", "JP");
for ($i = 0; $i < count($tas); $i++) {
	$tas[$i] = strtolower($tas[$i]);
}                                 # ("md", "bh", "kk", "hm", "jp")
$morgan = array_shift($tas);      # ("bh", "kk", "hm", "jp")
array_pop($tas);                  # ("bh", "kk", "hm")
array_push($tas, "ms");           # ("bh", "kk", "hm", "ms")
array_reverse($tas);              # ("ms", "hm", "kk", "bh")
sort($tas);                       # ("bh", "hm", "kk", "ms")
$best = array_slice($tas, 1, 2);  # ("hm", "kk")
				foreach loop
					(5.4.4)
				foreach ($array as $variableName) {
	...
}
$stooges = array("Larry", "Moe", "Curly", "Shemp");
for ($i = 0; $i < count($stooges); $i++) {
	print "Moe slaps {$stooges[$i]}\n";
}
foreach ($stooges as $stooge) {
	print "Moe slaps $stooge\n";  # even himself!
}
				$array = explode(delimiter, string); $string = implode(delimiter, array);
$s  = "CSE 190 M";
$a  = explode(" ", $s);     # ("CSE", "190", "M")
$s2 = implode("...", $a);   # "CSE...190...M"
				explode and implode convert between strings and arraysexplodenames.txtMartin D Stepp Jessica K Miller Victoria R Kirst
foreach (file("names.txt") as $name) {
	$tokens = explode(" ", $name);
	?>
	<p> author: <?= $tokens[2] ?>, <?= $tokens[0] ?> </p>
	<?php
}
					author: Stepp, Marty
author: Miller, Jessica
author: Kirst, Victoria
URL?name=value&name=value...
http://www.google.com/search?q=Obama http://example.com/student_login.php?username=stepp&id=1234567
username has value stepp, and sid has value 1234567$_REQUEST
					(6.4.2)
				
$user_name = $_REQUEST["username"];
$id_number = (int) $_REQUEST["id"];
$eats_meat = FALSE;
if (isset($_REQUEST["meat"])) {
	$eats_meat = TRUE;
}
				$_REQUEST["parameter name"] returns a parameter's value as a string
					isset
function name(parameterName, ..., parameterName) {
	statements;
}
				
function bmi($weight, $height) {
	$result = 703 * $weight / $height / $height;
	return $result;
}
				return statements is implicitly "void"name(expression, ..., expression);
$w = 163; # pounds $h = 70; # inches $my_bmi = bmi($w, $h);
$school = "UW"; # global ... function downgrade() { global $school; $suffix = "(Wisconsin)"; # local $school = "$school $suffix"; print "$school\n"; }
global statement
						
function name(parameterName = value, ..., parameterName = value) {
	statements;
}
function print_separated($str, $separator = ", ") {
	if (strlen($str) > 0) {
		print $str[0];
		for ($i = 1; $i < strlen($str); $i++) {
			print $separator . $str[$i];
		}
	}
}
print_separated("hello");        # h, e, l, l, o
print_separated("hello", "-");   # h-e-l-l-o
				| function name(s) | category | 
|---|---|
							file, 
							file_get_contents, file_put_contents
						 | 
						reading/writing entire files | 
							basename, 
							file_exists, 
							filesize,  fileperms, 
							filemtime, 
							is_dir, is_readable,
							is_writable,
							disk_free_space
						 | 
						asking for information | 
							copy, 
							rename, 
							unlink,
							chmod, chgrp, 
							chown,
							mkdir, 
							rmdir
						 | 
						manipulating files and directories | 
							glob,
							scandir
						 | 
						reading directories | 
contents of foo.txt | 
						file("foo.txt") | 
						file_get_contents("foo.txt") | 
					
|---|---|---|
							Hello how r u? I'm fine  | 
						
							array( "Hello\n", # 0 "how r u?\n", # 1 "\n", # 2 "I'm fine\n" # 3 )  | 
						
							"Hello\n how r u?\n # a single \n # string I'm fine\n"  | 
					
file function returns lines of a file as an array (\n at end of each)file_get_contents returns entire contents of a file as a single string
						file_put_contents writes a string into a file
							# reverse a file
$text = file_get_contents("poem.txt");
$text = strrev($text);
file_put_contents("poem.txt", $text);
				file_get_contents returns entire contents of a file as a string
						file_put_contents writes a string into a file, replacing its old contents
						# add a line to a file
$new_text = "P.S. ILY, GTG TTYL!~";
file_put_contents("poem.txt", $new_text, FILE_APPEND);
				| old contents | new contents | 
|---|---|
							Roses are red, Violets are blue. All my base, Are belong to you.  | 
						
							Roses are red, Violets are blue. All my base, Are belong to you. P.S. ILY, GTG TTYL!~  | 
					
file_put_contents can be called with an optional third parameter to append (add to the end) rather than overwritefile function# display lines of file as a bulleted list $lines = file("todolist.txt"); foreach ($lines as $line) { # for ($i = 0; $i < count($lines); $i++) print "<li>$line</li>\n"; }
file returns the lines of a file as an array of strings
					\n ; to strip it, use an optional second parameter:
						
$lines = file("todolist.txt", FILE_IGNORE_NEW_LINES);
					foreach or for loop over lines of filelistlist($var1, ..., $varN) = array;
personal.txtMarty Stepp (206) 685-2181 570-86-7326
list($name, $phone, $ssn) = file("personal.txt");
...
				list function "unpacks" an array into a set of variables you declare
					file and list to unpack it
					| function | description | 
|---|---|
scandir | 
						returns an array of all file names in a given directory  (returns just the file names, such as "myfile.txt")
						 | 
					
glob | 
						returns an array of all file names that match a given pattern  (returns a file path and name, such as "foo/bar/myfile.txt")
						 | 
					
glob can accept a general path with the * wildcard character
					glob example
# reverse all poems in the poetry directory
$poems = glob("poetry/poem*.dat");
foreach ($poems as $poemfile) {
	$text = file_get_contents($poemfile);
	file_put_contents($poemfile, strrev($text));
	print "<p>I just reversed " . basename($poemfile) . "</p>\n";
}
				
				glob can match a "wildcard" path with the * character
						glob("foo/bar/*.doc") returns all .doc files in the foo/bar subdirectory
							glob("food*") returns all files whose names begin with "food"
							basename function strips any leading directory from a file path
						basename("foo/bar/baz.txt") returns "baz.txt"
							scandir example
<ul>
	<?php
	$folder = "taxes/old";
	foreach (scandir($folder) as $filename) {
		print "<li>$filename</li>\n"
	}
	?>
</ul>
					scandir sucks; current directory (".") and parent ("..") are included in the arraybasename with scandir; returns file names only without directory