Don Alexander Eckford's Various Function Examples

Demonstrates how variables may be passed to, and returned from, functions.

________________________________________

This is inside Function one()

________________________________________

This is inside Function two() a = 2

________________________________________

Prior to function three() : a = 3

This is inside Function three() : a = 3

After going to function three() : a = 3

________________________________________

Before function four() : a = 4

This is inside Function four() : a = 14

After going to function four() : a = 4

________________________________________

Before function five() : a = 5

This is inside Function five() : a = 15

Returned from function five() : a = 15

________________________________________

Before function six() : a = 6

This is inside Function six() : a = 16

After function six() : a = 16

________________________________________

Before function seven

Array
(
)

This is inside Function seven()

After function seven

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
)
________________________________________

Before function eight

Array
(
)

This is inside Function eight()

After function eight

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
)
________________________________________

Before function eight

Array
(
)

This is inside Function eight()

After function eight

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
)
________________________________________
 

CODE FOLLOWS

<?php
    
include('includes/header.php');

    
// Enable all error reporting for development
    
error_reporting(E_ALL);

    echo 
"<h1>Don Alexander Eckford's Various Function Examples</h1>";
    echo 
'<p>Demonstrates how variables may be passed to, and returned from, functions.</p>';

    
//============= Functions ===============

    // Draw a line using underscores
    
function line(): void {
        echo 
str_repeat("_"40);
    }

    
// Simple function that echoes the program flow inside the function
    
function one(): void {
        echo 
'<p>This is inside Function one()</p>';
    }

    
// Simple function that assigns a variable and echoes its value
    
function two(): void {
        
$a 2;
        echo 
"<p>This is inside Function two() a = $a</p>";
    }

    
// Function that receives a value and echoes it
    
function three(int $a): void {
        echo 
"<p>This is inside Function three() : a = $a</p>";
    }

    
// Function that receives a value, adds 10 to it, and echoes it
    
function four(int $a): void {
        
$a += 10;
        echo 
"<p>This is inside Function four() : a = $a</p>";
    }

    
// Function that receives a value, adds 10 to it, echoes it, and returns the value
    
function five(int $a): int {
        
$a += 10;
        echo 
"<p>This is inside Function five() : a = $a</p>";
        return 
$a;
    }

    
// Function that receives a referenced variable, adds 10 to it, and echoes it
    
function six(int &$a): void {
        
$a += 10;
        echo 
"<p>This is inside Function six() : a = $a</p>";
    }

    
// Function that receives an array, populates it, and returns the array
    
function seven(array $a): array {
        echo 
"<p>This is inside Function seven()</p>";
        for (
$i 1$i 10$i++) {
            
$a[] = $i;  // Automatically generates index
        
}
        return 
$a;
    }

    
// Function that receives a reference to an array and populates it
    
function eight(array &$a): void {
        echo 
"<p>This is inside Function eight()</p>";
        for (
$i 1$i 10$i++) {
            
$a[] = $i;
        }
    }

    
//=============== Main Code ===============

    
line(); // Call to function line
    
one();  // Call to function one
    
line();

    
two();  // Call to function two
    
line();

    
$a 3;
    echo 
"<p>Prior to function three() : a = " htmlspecialchars($a) . "</p>";

    
three($a);  // Call to function three

    
echo "<p>After going to function three() : a = " htmlspecialchars($a) . "</p>";
    
line();

    
$a 4;
    echo 
"<p>Before function four() : a = " htmlspecialchars($a) . "</p>";

    
four($a);  // Call to function four

    
echo "<p>After going to function four() : a = " htmlspecialchars($a) . "</p>";
    
line();

    
$a 5;
    echo 
"<p>Before function five() : a = " htmlspecialchars($a) . "</p>";

    
$a five($a);  // Call to function five and assign the returned value

    
echo "<p>Returned from function five() : a = " htmlspecialchars($a) . "</p>";
    
line();

    
$a 6;
    echo 
"<p>Before function six() : a = " htmlspecialchars($a) . "</p>";

    
six($a);  // Call to function six (pass by reference)

    
echo "<p>After function six() : a = " htmlspecialchars($a) . "</p>";
    
line();

    
$a = [];  // Initialize an empty array
    
echo "<p>Before function seven</p>";
    echo 
'<pre>' htmlspecialchars(print_r($atrue)) . '</pre>';

    
$a seven($a);  // Call to function seven

    
echo "<p>After function seven</p>";
    echo 
'<pre>' htmlspecialchars(print_r($atrue)) . '</pre>';
    
line();

    
$a = [];  // Re-initialize an empty array
    
echo "<p>Before function eight</p>";
    echo 
'<pre>' htmlspecialchars(print_r($atrue)) . '</pre>';

    
eight($a);  // Call to function eight (pass by reference)

    
echo "<p>After function eight</p>";
    echo 
'<pre>' htmlspecialchars(print_r($atrue)) . '</pre>';
    
line();

    
// No initialization of $b array, passing undefined variable to function
    
$b = [];
    echo 
"<p>Before function eight</p>";
    echo 
'<pre>' htmlspecialchars(print_r($btrue)) . '</pre>';

    
eight($b);  // Call to function eight

    
echo "<p>After function eight</p>";
    echo 
'<pre>' htmlspecialchars(print_r($btrue)) . '</pre>';
    
line();

    include(
'includes/footer.php');
?>