PHP Base for MMI
Tags: php, beginners
Published: 2023-09-21 11:59:33

# PHP and HTML Course (Beginner)

## Table of Contents

- [Introduction](#introduction)
- [Language Basics](#language-basics)
- [Variables](#variables)
- [Variable Types](#variable-types)
- [Constants](#constants)
- [Operators](#operators)
- [Conditions](#conditions)
- [Loops](#loops)
- [Functions](#functions)
- [Arrays](#arrays)
- [Forms](#forms)
- [Sessions](#sessions)
- [Cookies](#cookies)
- [Classes and Objects](#classes-and-objects)

## Introduction

PHP is a server-side programming language used for creating dynamic web pages. PHP stands for "PHP: Hypertext Preprocessor."

## Language Basics

### Variables

A variable is a container for storing data values. It has a name and a value. Variables are created with a dollar sign followed by the variable name:

```php
<?php
$variable_name = "value";
// Always remember the semicolon at the end of the line! (in other languages, it may not be required)
?>
```

*(Note that in PHP, you need to open and close PHP tags for the code to be interpreted.)*

### Variable Types

Variables can store different types of data, and different data types can perform different tasks. PHP supports the following data types:

- String
- Integer
- Float (Decimal number)
- Boolean
- Array
- Object
- NULL

Example:

```php
<?php
$name = "John";
$age = 25;
$height = 1.85;
$is_adult = true;
$fruits = array("apple", "banana", "orange"); 
// or
$fruits = ["apple", "banana", "orange"];
$object = new stdClass();
$nothing = null;
?>
```

### Constants

Constants are similar to variables, but once defined, they cannot be changed or deleted later.

Example:

```php
<?php
const NAME = "John"; 
?>
```

### Operators

Operators are used to perform operations on variables and values. Like in mathematics, PHP operators are used for arithmetic operations such as addition, subtraction, multiplication, division, etc.

Example:

```php
<?php
$x = 10;
$y = 6;
$z = $x + $y;
echo $z; // Outputs 16
?>
```

*(There are, of course, other operators like increment, decrement, addition, subtraction, multiplication, division, modulus, etc.)*

Example of increment and decrement:

```php
<?php
$x = 10;
echo $x++; // Outputs 11
echo ++$x; // Outputs 12
echo $x--; // Outputs 11
echo --$x; // Outputs 10
?>
```

### Conditions

Conditional statements are used to perform different actions based on different conditions. There are three types of conditional statements in PHP:

- if
- else
- elseif
  (There are others available, but these are the most commonly used.)
  The others include switch, ternary, etc.
- The ternary is a condition that allows you to perform an if/else on a single line.
  - Example:
    ```php
    <?php
    $age = 18;
    echo ($age >= 18) ? "Adult" : "Minor";
    ?>
    ```
  - The switch is a condition that allows you to perform an if/else over multiple lines.
    - Example:
      ```php
      <?php
      $age = 18;
      switch ($age) {
        case 18:
          echo "You are 18 years old";
          break;
        case 19:
          echo "You are 19 years old";
          break;
        default:
          echo "You are a different age";
      }
      ?>
      ```

For if/else/elseif, here's an example:

```php
<?php
$age = 18;
if ($age >= 18) {
  echo "Adult";
} elseif ($age == 17) {
  echo "Almost an adult";
} else {
  echo "Minor";
}
?>
```

### Loops

Loops are used to repeatedly execute the same block of code as long as a specific condition is met. There are four types of loops in PHP:

- for
- foreach
- while
- do...while

Example of a for loop:

```php
<?php
for ($x = 0; $x <= 10; $x++) { // (initialization; condition; increment)
  echo "The number is: $x <br>";
}
?>
```

Example of a foreach loop:

```php
<?php
$fruits = ["apple", "banana", "orange"];
foreach ($fruits as $fruit) { // (array as variable), here $fruit is the variable that iterates through the $fruits array
  echo "$fruit <br>";
}
?>
```

Example of a while loop:

```php
<?php
$x = 1;
while ($x <= 5) { // (condition), here, as long as $x is less than or equal to 5, we display the number
  echo "The number is: $x <br>";
  $x++;
}
?>
```

Example of a do...while loop:

```php
<?php
$x = 1;
do { // (condition), here, as long as $x is less than or equal to 5,
// we display the number (similar to while, but the condition is checked at the end of the loop)
  echo "The number is: $x <br>";
  $x++;
} while ($x <= 5);
?>
```

### Functions

A function is a block of statements that can be used multiple times in a script. A function is not executed immediately when a page is loaded; it is executed by calling the function.

Example of a function:

```php
<?php
function sayHello() {
  echo "Hello!"; // Outputs Hello!
  // You can also use return "Hello!"; to return a value
}

sayHello(); // Calling the function
?>
```

### Arrays

An array stores multiple values in a single variable. Each value has an identifier (key) associated with it. Arrays can contain strings, numbers, objects, functions, and even other arrays.

Example of an array:

```php
<?php
$fruits = array("apple", "banana", "orange"); // Indexed array
$people = ["John", "Doe", "Jane"]; // Indexed array (alternative syntax)
$person = array("name" => "John", "age" => 25); // Associative array
// Multi-dimensional array (array within an array)
$hobbies = [
  ["name" => "John", "age" => 25],
  ["name" => "Doe", "age" => 30],
  ["name" => "Jane", "age" => 28]
];
?>
```

To iterate through an array, you can use a loop:

```php
<?php
$fruits = ["apple", "banana", "orange"];
for ($i = 0; $i < count($fruits); $i++) {
  echo $fruits[$i] . "<br>";
}
?>
```
To traverse an associative array, you can use a foreach loop:

```php
<?php
$person = array("nom" => "John", "age" => 25);
foreach ($person as $key => $value) {
  echo "$key : $value <br>";
}
?>
```

To traverse a multi-dimensional array, you can also use a foreach loop:

```php
<?php
$people = [
  ["nom" => "John", "age" => 25],
  ["nom" => "Doe", "age" => 30],
  ["nom" => "Jane", "age" => 28]
];
foreach ($people as $person) {
  echo $person["nom"] . " a " . $person["age"] . " ans <br>";
}
?>
```

### Forms

Forms are used to collect information from users. An HTML form typically contains various types of form inputs, such as text, checkboxes, radio buttons, option buttons, drop-down menus, etc.

Example of a form:

```html
<form action="traitement.php" method="post">
  <label for="nom">Nom :</label>
  <input type="text" id="nom" name="nom">
  <label for="prenom">Prénom :</label>
  <input type="text" id="prenom" name="prenom">
  <input type="submit" value="Envoyer">
</form>
```

This is a form that will send data to the "traitement.php" file using the POST method. GET and POST are the two most common methods for sending data to a PHP page.

GET: Data is sent in the URL (data is visible in the URL).
POST: Data is sent in the HTTP header (data is not visible in the URL).

To retrieve data from a form, you can use the superglobal $_POST:

```php
<?php
$nom = $_POST["nom"]; // "nom" corresponds to the "name" attribute of the form input (in this case, it's "nom") (name="nom")
$prenom = $_POST["prenom"];
echo "Bonjour $prenom $nom!";
?>
```

To retrieve data from a form using the GET method, you can use the superglobal $_GET:

```php
<?php
$nom = $_GET["nom"];
$prenom = $_GET["prenom"];
echo "Bonjour $prenom $nom!";
// Be sure to change the form method to GET
?>
```

Superglobals are built-in variables that are always available in all contexts. They are predefined in PHP. There are many superglobals, but the most commonly used ones are $_POST and $_GET. Here are some others that might be useful:

- $_SERVER
- $_REQUEST
- $_SESSION
- $_COOKIE
- $_FILES

You can also add a condition to check if the form has been submitted:

```php
<?php
if (isset($_POST["nom"]) && isset($_POST["prenom"]) && !empty($_POST["nom"]) && !empty($_POST["prenom"])) {
  $nom = $_POST["nom"];
  $prenom = $_POST["prenom"];
  echo "Bonjour $prenom $nom!";
}
?>
```

### Sessions

A session is a way to store information (in variables) for use across multiple pages. Unlike cookies, session data is not stored on the user's computer.

To start a session, you use the session_start() function:

```php
<?php
session_start();
?>
```

To store information in a session, you use the $_SESSION superglobal:

```php
<?php
session_start();
$_SESSION["nom"] = "John";
$_SESSION["prenom"] = "Doe";
?>
```

To retrieve information from a session, you also use the $_SESSION superglobal:

```php
<?php
session_start();
echo $_SESSION["nom"]; // Outputs John
echo $_SESSION["prenom"]; // Outputs Doe
?>
```


### Cookies

A cookie is often used to identify a user. A cookie is a small text file stored on the user's computer. When the user accesses a web page, their name can be retrieved from the cookie.

To create a cookie, you use the setcookie() function:

```php
<?php
setcookie("nom", "John", time() + 3600); // name, value, duration (here, 1 hour)
?>
```

To retrieve a cookie, you use the $_COOKIE superglobal:

```php
<?php
echo $_COOKIE["nom"]; // Outputs John
?>
```