Définition de PHP.

Que signifie PHP?
Simplement PHP Hypertext Preprocessor, Oui, le premier P de PHP signifie PHP. Nous voilà déjà avec une boucle infini dans notre titre.
Créé dans le début des années 1990, il est le langage de programmation côté back le plus populaire. Cela étant dû entre autre au fait qu'il soit sous licence libre et donc utilisable par n'importe qui gratuitement.
Très lié aux bases de données MySQL et aux serveurs Apaches qui ne sont pas moins populaire. La majorité des développeurs Web en ont fait ou en font toujours. De nombreux framework sont basés sur PHP, on notera Symfony et Laravel pour ne citer qu'eux.

Les fichiers php sont en premier lieu traité par le serveur, où tout le code php sera interprété et ensuite envoyé au navigateur sous la forme de fichier HTML.
Quand on commence à faire un site ayant besoin d'une partie BACK, la plupart des pages HTML deviendrons des pages PHP, simplement pour y inclure une autre page, ou bien affiché une donnée variable.

Un peu de syntaxe.

Tout code php doit se trouver entre des balises ouvrante et fermante. prenant cette forme :


<?php 
# votre code ici ! 
?>

            

Dans l'exemple suivant, vous verrez 5 façon d'afficher des éléments dans votre page HTML avec PHP.
Vous remarquerez que chaque instruction en PHP se finit toujours par un ";".
Au contraire de javascript, ";" n'est pas optionnel.
D'ailleurs si vous avez une erreur dans votre code, premier conseil, regardez la ligne au dessus de votre erreur, ça sera souvent un ";" oublié.

L'affichage.


<?php
echo "Bonjour";
var_dump("Bonjour");
var_export("Bonjour"); 
print("Bonjour");
print_r("Bonjour");
?>


            
  • echo est le plus banal, souvent le plus utilisé, il affiche une chaîne de caractère ou un nombre.
  • var_dump() est quand à lui le plus pratique pour le debug, il affiche de nombreuse informations sur ce qui lui est donné.
  • var_export() affiche sous forme de code php ce qui lui est donné.
  • print est quasiment identique à echo, les différences sont au nombre de 2. la première est que echo est légèrement plus rapide. La seconde est que print renvoi une valeur égale à 1.
  • print_r quand à lui ressemble beaucoup à var_export à l'exception que ce n'est pas du code interprettable.

Autre point, Si les variables PHP sont bien sensible à la casse, les fonctions et autre mot clef de PHP ne le sont absoluement pas, donc je peux mélanger minuscule et majuscule sans problème.

Les commentaires.


// Ceci est un commentaire sur une ligne.
# Ceci est un autre commentaire sur une ligne.
/* Ceci est un commentaire 
sur plusieurs lignes. */
echo 5+ /* ou à l'interieur de code */ 4; 

            

Comme vous pouvez le voir juste au dessus, il y a 3 façon d'écrire un commentaire en PHP.

les variables.

Les variables en PHP n'ont pas de mot clef pour être déclaré, par contre elles doivent respecter quelques règles :

  • Elles commencent toute par "$".
  • Le nom doit commencer par une lettre ou un "_".
  • La suite du nom ne peut contenir que lettre, chiffres ou "_".
  • Les variables sont sensible à la casse. ($x et $X sont deux variables différentes.

Les variables en PHP n'ont pas de type déclaré comme d'autres langages, on peut donc changer leurs types sans problème à tout moment.
La portée des variables peut être de trois types différents.

  • Local
  • Global
  • Static

Global :
Une variable déclaré hors d'une fonction ne peut être appelé dans une fonction.
Local :
Une variable déclaré dans une fonction ne peut être appelé que dans une fonction.


$x = 5;
function test(){
    $y = 2;
    echo $x, $y; 
}
test(); // seulement 2 sera affiché. 
echo $x, $y; // seulement 5 sera affiché.

            

Cela dit il existe une exception, on peut appeler une variable global dans une fonction via le mot clef "global" ou la superglobal "$_GLOBALS".
Cette dernière est un tableau où php range toute les variables globals.


$x = 5;
$y = 2;
function test(){
    global $x;
    echo $x, $_GLOBALS["y"]; 
}
test(); // affichera bien 5 et 2; 

            

Il nous reste à voir le mot clef "static", normalement une variable déclaré dans une fonction est détruite une fois la fonction terminé. Mais pas avec static.
La variable sera sauvegardé et pourra être réutilisé quand la fonction est à nouveau appelé, bien que la variable reste inaccessible hors de la fonction.


function test(){
    static $x = 5;
    echo $x++ ; 
}
test(); // affiche 5;
test(); // affiche 6;
test(); // affiche 7;

            

En PHP les constantes ne sont pas à proprement parlé des variables. Elles demandent d'ailleurs l'utilisation d'une fonction pour être défini.
De plus elles n'ont pas besoin du "$" pour les précéder.
Si ce n'est cela, leur nomination suit les même règles que les variables classique.
Par convention on aura tendance à les écrire en majuscule, mais rien n'y oblige.


define("MACONST", "Hey ! Listen !");
define("CONST2", "Watch Out !", true);
echo MACONST; // affichera "Hey ! Listen !"
echo mAcONST; // ne sera pas reconnu.
echo CONST2; // affichera "Watch Out !"
echo conST2; // affichera "Watch Out !"

            

La fonction define prend en premier argument le nom de notre constante.
En second argument, la valeur de notre constante.
En troisième, optionnel et par défaut false, si elle doit être sensible à la casse ou non.

Les conditions.

Comme dans beaucoup de langages, PHP a accès aux "if" et compagnies de la manière suivante :


if(condition){
    // si c'est vrai alors fera cette action.
}elseif(condition){
    // si la première est fausse mais celle ci vrai.
    // alors fera cette action.
}else{
    // si toute les précédentes sont fausse.
    // alors fera cette action.
}

            

Un "if" n'est pas forcément suivi de "elseif" ou "else".
Un "elseif" prend forcément une nouvelle condition.
Il peut y avoir autant de "elseif" que l'on souhaite.
Un "else" ne prend pas de condition et est forcément seul.

Et bien sûr nous pouvons aussi utiliser le "switch" tel que :


switch($x){
    case "truc":
        // si $x vaut "truc" alors fera ceci;
        break;
    case 5:
        // si $x vaut 5 alors fera ceci;
        break;
    case true:
        // si $x vaut true alors fera ceci;
        break;
    default:
        // si $x ne correspond à aucun des cas, alors fera ceci;
}

            

Chaque cas doit commencer par le mot clef "case" suivi d'une valeur et de ":".
Chaque fin de cas doit être écrite avec le mot clef "break".
Il peut y avoir autant de cas que voulu.
Le mot clef "default" est optionel et n'a pas besoin de "break".

Les boucles.