Syntaxe

Le principe de la programmation en PHP ne diffère pas de C#, il y a cependant parfois des particularités dans la syntaxe. C’est à la base un langage non typé. Cependant depuis la version 7, il est possible d’ajouter des types à certains éléments (méthodes, fonctions, variable de classe).

Variables et constantes

Les variables sont précédées d’un $.

// Déclaration d'une variable
$captainsAge;
// Déclaration d'une variable avec une assignation
$number = 0;

Les constantes sont définies en majuscule, les mots séparés par des _ avec la fonction define ou const.

// Hors d'une classe
define("CAPTAINS_AGE", 54);

// A l'intérieur d'une classe
class foo {

   const CAPTAINS_AGE = 54;
}

Chaînes de caractères

Les chaînes de caractères se définissent également avec un $. Il est possible d’utiliser les guillemets ou les simples guillemets.

$textWeather = "Aujourd'hui, il fera beau.";
$textWeatherNextWeek = 'La semaine prochaine, il neigera.';

La différence réside dans la substitution des variables. Si on intègre une variable dans une chaine avec des guillemets, nous verrons la valeur de la variable. Si on fait de même dans une chaine avec des simples guillemets, nous verrons le nom de la variable.

$alert = "Danger ! ";

$textWeather = "$alert Aujourd'hui, il fera beau.";
//Danger ! Aujourd'hui, il fera beau.
$textWeatherNextWeek = '$alert La semaine prochaine, il neigera.';
//$alert La semaine prochaine, il neigera.

Pour concaténer deux chaînes ensembles, l’opération est le point (.)

$textWeather = "Aujourd'hui, il fera beau.";
$textWeatherNextWeek = 'La semaine prochaine, il neigera.';

// En mettant les chaînes l'une après l'autre
echo $textWeather . $textWeatherNextWeek;
// Aujourd'hui, il fera beau.La semaine prochaine, il neigera.

// En ajoutant un espace entre les chaînes
echo $textWeather . ' ' . $textWeatherNextWeek;
// Aujourd'hui, il fera beau. La semaine prochaine, il neigera.

Opérateurs

Opérateurs en PHP

A retenir :

$textNumber = "1";
$textNumber += 2; // La variable contiendra 3.

Conditions

if ($a > $b) {
   echo "a est plus grand que b";
} elseif ($a == $b) {
   echo "a est égal à b";
} else {
   echo "a est plus petit que b";
}

Switch

switch ($i) {
   case 0:
      echo "i égal 0";
      break;
   case 1:
      echo "i égal 1";
      break;
   case 2:
      echo "i égal 2";
      break;
   default:
      echo "ce cas n'existe pas";
}

While et Do While

// While
$i = 1;
while ($i <= 10) {
   echo $i++;
}

// Do While
$i = 0;
do {
   echo $i;
} while ($i > 0);

For et Foreach

// For
for ($i = 1; $i <= 10; $i++) {
   echo $i;
}

// Foreach
$arr = array(1, 2, 3, 4);
foreach ($arr as $value) {
   $value = $value * 2;
}

Fonctions

function foo($arg_1, $arg_2, /* ..., */ $arg_n) {
   echo "Exemple de fonction.\n";
   return $retval;
}

// Depuis PHP7, il est possible de typer
function sum(int $a, int $b): int {
   return $a + $b;
}

Inclure des fichiers

Il est parfois nécessaire d’inclure un fichier PHP dans un autre fichier PHP. Dans le cas d’un site web, certaines parties du site sont similaires entre les pages. Exemple avec le bas de page, il est possible de le créer dans une page PHP qui sera incluse dans toutes les autres pages du site. Cela permet en cas de modification dans le footer, de l’effectuer sur un seul fichier, même si le site comporte plusieurs pages.

PHP met à disposition plusieurs fonctions afin d’inclure un fichier.

  • include : En cas de problème, lance un avertissement.

  • include_once : En cas de problème, lance un avertissement et vérifier que le fichier n’est pas déjà inclus.

  • require : En cas de problème, lance une erreur.

  • require_once : En cas de problème, lance une erreur et vérifier que le fichier n’est pas déjà inclus.

Les fonctions avec « _once » sont plus lentes à l’exécution. Les fonctions include et include_once lance un avertissement et l’interprétation du code est continué.

// Fichier footer.php
<footer>Bas de page</footer>
// Fichier index.php
//Début du fichier html
<body>
   //Contenu du site
   include("footer.php");
</body>
//Fin du fichier html