Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two...
Transcript of Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two...
![Page 1: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/1.jpg)
Expressions and Operators
![Page 2: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/2.jpg)
Expressions
• Using variables within expressions to do something is what PHP is all about.
<?php $name = ‘Rob’; echo $name; ?>
Expression
Operator
![Page 3: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/3.jpg)
Some Types of Operator
• Arithmetic • Assignment • Bitwise • Comparison • Ternary
• Incrementing /decrementing
• Logical • String
![Page 4: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/4.jpg)
String Operators
• Use a dot to concatenate two strings: e.g. $firstname = ‘Rob’; $surname = ‘Tuley’; // displays ‘Rob Tuley’ echo $firstname.’ ‘.$surname;
![Page 5: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/5.jpg)
Arithmetic Operators
Example Name Result
$a + $b Addition Sum of $a and $b.
$a - $b Subtraction Difference of $a and $b.
$a * $b Multiplication Product of $a and $b.
$a / $b Division Quotient of $a and $b.
$a % $b Modulus Remainder of $a divided by $b.
![Page 6: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/6.jpg)
Assignment Operators
Example Result $a = $b Sets $b to the same value as $a.
$a += $b Equivalent to $a = $a + $b.
$a .= $b Equivalent to $a = $a.$b.
![Page 7: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/7.jpg)
Combining Operators
• Note that you can combine operators, for example use =, + and / in one expression:
$a = 4; $b = 2; $c = $a + $b + ($a/$b); // $c has value 4+2+(4/2) = 8
• Brackets help group operators.
![Page 8: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/8.jpg)
Comparison Operators
Example Name Result $a == $b Equal TRUE if $a is equal to $b. $a != $b Not equal TRUE if $a is not equal to $b. $a <> $b Not equal TRUE if $a is not equal to $b. $a < $b Less than TRUE if $a is strictly less than $b. $a > $b Greater than TRUE if $a is strictly greater than $b. $a <= $b Less than or equal to TRUE if $a is less than or equal to $b. $a >= $b Gtr than or equal to TRUE if $a is greater than or equal to $b.
![Page 9: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/9.jpg)
Comparisons
• Comparison expressions return a value of TRUE (or ‘1’) or FALSE (or ‘0’).
e.g. $a = 10; $b = 13; // result is true (‘1’) echo $a < $b;
![Page 10: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/10.jpg)
Incrementing/Decrementing
Example Name Effect ++$a Pre-increment Increments $a by one, then returns $a.
$a++ Post-increment Returns $a, then increments $a by one.
--$a Pre-decrement Decrements $a by one, then returns $a.
$a-- Post-decrement Returns $a, then decrements $a by one.
![Page 11: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/11.jpg)
Logical Operators
Example Name Result $a and $b And TRUE if both $a and $b are TRUE. $a or $b Or TRUE if either $a or $b is TRUE. $a xor $b Xor TRUE if either $a or $b is TRUE, but not both.
!$a Not TRUE if $a is not TRUE. $a && $b And TRUE if both $a and $b are TRUE. $a || $b Or TRUE if either $a or $b is TRUE.
![Page 12: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/12.jpg)
Finally, a tricky one!
• A single ? is the ternary operator. (expr) ? if_expr_true : if_expr_false;
• A test expression evaluates to TRUE or FALSE. • TRUE gives first result (before colon) • FALSE gives second result (after colon)
![Page 13: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/13.jpg)
Ternary Operator example
<?php $a = 10; $b = 13; echo $a<$b ? ‘a smaller’:‘b smaller’; // string ‘a smaller’ is echoed // to the browser.. ?>
![Page 14: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/14.jpg)
Groups of variables
• So far, we have stored ONE piece of data in each variable.
• It is also possible to store multiple pieces of data in ONE variable by using an array.
• Each piece of data in an array has a key..
![Page 15: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/15.jpg)
An array
Normal Variable, no key: $name = ‘Rob’; Array Variable, multiple pieces with ‘keys’: $name[0] = ‘Rob’; $name[1] = ‘Si’; $name[2] = ‘Sarah’;
… The ‘key’
![Page 16: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/16.jpg)
Array keys
• Array keys can be strings as well as numbers.. $surname[‘rob’] = ‘Tuley’; $surname[‘si’] = ‘Lewis’;
• Notice the way that the key is specified, in square brackets following the variable name.
![Page 17: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/17.jpg)
Working with arrays..
• Create Array (automatic keys): $letters = array('a','b','c','d'); The array keys are automatically assigned by PHP as
0, 1, 2, 3 i.e. $letters[1] has value ‘b’ • Create Array (explicit keys): $letters = array(10=>’a’,13=>’b’); i.e. $letters[13] has value ‘b’
![Page 18: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/18.jpg)
Working with arrays…
• Create array (component by component): $letters[10] = ‘a’; $letters[13] = ‘b’;
• Access array component: echo $letters[10]; // displays a echo $letters[10].$letters[13]; // displays ab
![Page 19: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/19.jpg)
Working with arrays…
Note that trying to echo an entire array will not display the data. To print an entire array to
screen (for debug, for example) use the function print_r instead.
echo $letters;
print_r($letters);
![Page 20: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/20.jpg)
So.. We know we can: 1. Store things in named variables. 2. Use expressions to operate on the contents
of these variables. 3. Can compare variables..
How do we actually include logic in the code such as ‘if this is bigger than that, do this’?
![Page 21: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/21.jpg)
Control Structures
• if, elseif, else • while, do … while • for, foreach • switch • break, continue, return • require, include, require_once, include_once
![Page 22: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/22.jpg)
If … • To do something depending on a comparison,
use an if statement. if (comparison) { expressions; // do if TRUE }
• NB: Notice the curly brackets – these are important!
![Page 23: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/23.jpg)
If example <?php $a = 10; $b = 13; if ($a<$b) { echo ‘a is smaller than b’; } ?>
![Page 24: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/24.jpg)
Extending IF statements
• It is possible to add extra optional clauses to if statements..
if (comparison) { expressions; // do if TRUE } else { expressions; // do otherwise }
![Page 25: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/25.jpg)
Extending If statements
if (comparison1) { expressions; } elseif (comparison2) { expressions; } else { expressions; }
![Page 26: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/26.jpg)
An example..
$a = 10; $b = 13; if ($a<$b) { echo ‘a is smaller than b’; } elseif ($a==$b) { echo ‘a is equal to b’; } else { echo ‘a is bigger than b’; }
![Page 27: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/27.jpg)
While loops
• Might want to do something repeatedly while a comparison is true..
while (comparison) { expressions;
}
![Page 28: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/28.jpg)
Example
• Lets count to 10! Displays 1,2,3,4,5,..,10:
$i = 1; while ($i <= 10) { echo $i++;
}
![Page 29: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/29.jpg)
Do .. While
• An alternative... $i = 1; do { echo $i++;
} while ($i <= 10);
![Page 30: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/30.jpg)
For loop
• Sometimes we want to loop around the same bit of code a number of times.. Use a for loop.
• for (expr1; expr2; expr3) { statements; }
– expr1 evaluated/executed initially – expr2 evaluated at beginning of each iteration
(Continues if TRUE) – expr3 evaluated/executed at end of each
iteration
![Page 31: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/31.jpg)
For loop example
• To count from 1 to 10: for ($i=1; $i<=10; $i++) { echo $i; }
initialise Continue if true
Execute at end of loop
![Page 32: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/32.jpg)
Foreach loop
• A foreach loop is designed for arrays. Often you want to loop through each item in an array in turn..
$letters = array(‘a’,’b’,’c’); foreach ($letters as $value) { echo $value;
} // outputs a,b,c in turn
![Page 33: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/33.jpg)
Foreach.. With keys
• Sometimes we want to use the array ‘key’ value too:
$letters = array(‘a’,’b’,’c’);
foreach ($letters as $key => $value) { echo “array $key to $value”;
}
![Page 34: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/34.jpg)
Switch statement switch (expr) {
case (result1): statements; break; case (result2): statements; break; default: statements;
}
• expr is evaluated – Case corresponding to
result is executed – Otherwise default case
is executed • break
– Ensures next case isn’t executed
![Page 35: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/35.jpg)
Switch Example switch ($name) {
case ‘Rob’: echo ‘Your name is Rob’; break; case ‘Fred’: echo ‘You are called Fred’; break; default: echo ‘Not sure what your name is’;
}
![Page 36: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/36.jpg)
break, continue, return
• break – Ends execution of current for, foreach, do … while, while or
switch structure – Option: Number of nested structures to break out of
• continue – Skip rest of current loop – Option: Number of nested loops to skip
• return – Ends execution of current function/statement/script
![Page 37: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/37.jpg)
Indentation..
• Code readability IS important – notice how all the code inside a loop/control structure is indented.
• Once you start writing nested control loops, indentation is the only way to keep track of your code!
![Page 38: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/38.jpg)
require, include
• require('filename.ext') – Includes and evaluates the specified file – Error is fatal (will halt processing)
• include('filename.ext') – Includes and evaluates the specified file – Error is a warning (processing continues)
• require_once / include_once – If already included won’t be included again
![Page 39: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/39.jpg)
Code Re-use
• Often you will want to write a piece of code and re-use it several times (maybe within the same script, or maybe between different scripts).
• Functions are a very nice way to encapsulate such pieces of code..
![Page 40: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/40.jpg)
Eh..? What?
• You have already used functions..
echo(‘text to display’);
Function NAME Function ARGUMENT
![Page 41: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/41.jpg)
What is a function?
• A function takes some arguments (inputs) and does something with them (echo, for example, outputs the text input to the user).
• As well as the inbuilt PHP functions, we can define our own functions..
![Page 42: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/42.jpg)
Definition vs. Calling
There are two distinct aspects to functions: 1. Definition: Before using a function, that
function must be defined – i.e. what inputs does it need, and what does it do with them?
2. Calling: When you call a function, you actually execute the code in the function.
![Page 43: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/43.jpg)
Function Definition
• A function accepts any number of input arguments, and returns a SINGLE value.
function myfunction($arg1,$arg2,…,$argN) { statements; return $return_value; }
![Page 44: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/44.jpg)
Example
• Function to join first and last names together with a space..
function make_name($first,$last) { $fullname = $first.’ ‘.$last; return $fullname; }
![Page 45: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/45.jpg)
Calling functions..
• Can be done anywhere.. myfunction($arg1,$arg2,…,$argN)
or $answer = myfunction($arg1,$arg2,…,$argN) e.g.
echo make_name(‘Rob’,’Tuley’); // echoes ‘Rob Tuley’
![Page 46: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/46.jpg)
Functions: Return Values
• Use return() – Causes execution of function to cease – Control returns to calling script
• To return multiple values – Return an array
• If no value returned – NULL
![Page 47: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/47.jpg)
‘Scope’ • A function executes within its own little
protected bubble, or local scope. • What does this mean? Its means that the
function can’t ‘see’ any of the variables you have defined apart from those passed in as arguments..
• Each new function call starts a clean slate in terms of internal function variables.
![Page 48: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/48.jpg)
In other words.. • Variables within a function
– Are local to that function • Disappear when function execution ends
• Variables outside a function – Are not available within the function
• Unless set as global
• Remembering variables – Not stored between function calls
• Unless set as static
![Page 49: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/49.jpg)
Global variables.. • To access a variable outside the ‘local’ scope of a
function, declare it as a global: function add5toa() { global $a; $a = $a + 5; } $a = 9; add5toa(); echo $a; // 14
![Page 50: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/50.jpg)
Static Variables • Local function variable values are not saved between
function calls unless they are declared as static: function counter() { static $num = 0; return ++$num; } echo counter(); // 1 echo counter(); // 2 echo counter(); // 3
![Page 51: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/51.jpg)
Default Arguments
• Can specify a default value in the function definition which is used only if no value is passed to the function when called..
• Defaults must be specified last in the list
function myfunction($arg1,$arg2=‘blah’)…
function myfunction($arg1=‘blah’,$arg2)…
![Page 52: Expressions and Operatorspeople.du.ac.in/...expressions_control_functions.pdf · There are two distinct aspects to functions: 1. Definition: Before using a function, that function](https://reader035.fdocuments.us/reader035/viewer/2022081408/60711168af23250a4256617b/html5/thumbnails/52.jpg)
Passing References
• Pass a reference to a variable – Not the actual variable
• Why? – Enables a function to modify its arguments
• How? – Use an ampersand in front of the variable – &$variable