types
Les variables
Une variable est le conteneur d’une valeur d’un des types
utilisés par PHP (entiers, flottants, chaînes de caractères,
tableaux, booléens, objets, ressource ou NULL).
Chaque variable possède un identifiant particulier, qui
commence toujours par le
caractère dollar ($) suivi du nom de la variable. Les règles
de création des noms de variable sont les suivantes :
Les variables
• Le nom commence par un caractère alphabétique, pris
dans les ensembles [a-z], [A-Z] ou par le caractère de
soulignement (_).
• Les caractères suivants peuvent être les mêmes plus des
chiffres.
• La longueur du nom n’est pas limitée, mais il convient
d’être raisonnable sous peine de confusion dans la saisie du
code.
Les variables
• Vous pouvez créer des variables n’importe où.
• L’initialisation des variables n’est pas non plus obligatoire
et une variable non initialisée n’a pas de type précis.
• Les noms des variables sont sensibles à la casse
(majuscules et minuscules). $mavar et $MaVar ne désignent
donc pas la même variable.
Affectation par valeur et par référence
Les opérateurs d’affectation combinée
• += (Addition puis affectation : $x += $y équivaut à $x = $x +
$y)
• -= (Soustraction puis affectation : $x -= $y équivaut à $x =
$x - $y)
• *= (Multiplication puis affectation : $x *= $y équivaut à $x
= $x * $y)
• **= (Puissance puis affectation $x**=2 équivaut à $x=($x)²)
Les opérateurs d’affectation combinée
• /= (Division puis affectation : $x /= $y équivaut à $x = $x /
$y)
• %= (Modulo puis affectation : $x %= $y équivaut à $x = $x
% $y)
• .= (Concaténation puis affectation :$x .= $y équivaut à $x =
$x . $y)
Les constantes
Pour définir des constantes personnalisées, utilisez la fonction
define(), dont la syntaxe est la suivante :
boolean define(string nom_cte, divers valeur_cte, boolean
casse)
• valeur_cte = valeur de la constante
• nom_cte = nom de la constante qui est une chaîne de caractères
• Casse = TRUE si le nom de la constante est insensible à la casse
et FALSE sinon.
Les constantes
<?php
// Définition insensible à la casse
define("PI",3.1415926535,TRUE);
// Utilisation
echo "La constante PI vaut ".PI."<br />";
echo "La constante PI vaut ".pi."<br />";
// Vérification de l’existence
if (defined( "PI")) echo "La constante PI est déjà définie <br />";
if (defined( "pi")) echo "La constante pi est déjà définie <br />";
?>
Les types de données
Dans PHP, il n’existe pas de déclaration explicite du type d’une variable lors de sa
création.
PHP permet la manipulation d’un certain nombre de types de données différents dans
lequel on distingue :
• Les types scalaires de base :
– Entiers, avec le type integer, qui permet de représenter les nombres entiers
dans les bases 10, 8 et 16.
– Flottants, avec le type double ou float, au choix, qui représentent les nombres
réels, ou plutôt décimaux au sens mathématique.
– Chaînes de caractères, avec le type string.
– Booléens, avec le type boolean, qui contient les valeurs de vérité TRUE ou FALSE
(soit les valeurs 1 ou 0 si on veut les afficher).
Les types de données
• Les types composés :
– Tableaux, avec le type array, qui peut contenir plusieurs valeurs.
– Objets, avec le type object.
• Les types spéciaux :
– Type resource.
– Type null.
Déterminer le type d’une variable
La principale fonction permettant de déterminer le type d’une valeur
est gettype(), dont la syntaxe est la suivante :
string gettype($mavar)
boolean isset($var)
Contrôler l’état d’une variable
<?php
if(isset($b)){echo "\$b existe déjà<br/>";}
$a=null;
else {echo "\$b n'existe pas<br />";}
if(isset($a)) if(empty($b)){echo "\$b est vide <br />";}
{echo "\$a existe déjà<br />";} else {echo "\$b a la valeur $b<br />";}
//Affiche "$b existe déjà" et "$b est vide«
else {echo "\$a n'existe pas<br />";} $c=1;if(isset($c)){echo "\$c existe déjà<br />";}
if(empty($a)){echo "\$a est vide <br />";} else {echo "\$c n'existe pas<br />";}
else {echo "\$a a la valeur $a<br />";} if(empty($c)){echo "\$c est vide <br />";}
else {echo "\$c a la valeur $c<br />";}
//Affiche "$a n'existe pas" et "$a est vide" //Affiche "$c existe déjà" et "$c a la valeur 1"
$b=0; ?>
Les tableaux
Les tableaux représentent un type composé car ils
permettent de stocker sous un même nom de variable
plusieurs valeurs indépendantes d’un des types de base.
$tab[0] = 2004;
$tab[1] = 31.14E7;
$tab[2] = "PHP7";
$tab[35] = $tab[2]. "et MySQL";
$tab[] = TRUE;
//voir les paragraphes suivants
$ind = 40;
$tab[$ind] = "Dernier élément";
echo "Nombre d'éléments = ", count($tab);
Les instructions de
contrôle
L’instruction if
Sa syntaxe est la suivante :
if (expression) instruction;
<?php
$a=6;
if(is_integer($a) && ($a<10 && $a>5) && ($a%2==0) )
{echo "Conditions satisfaites";}
?>
L’instruction if...else
if(expression1)
{
//Bloc 1
} elseif(expression2){
//Bloc 2
}else{
//Bloc 3
}
Les opérateurs ? et ??
$var = expression ? valeur1 : valeur2
if(expression) {$var=valeur1;}
else {$var=valeur2;}
$nom=$_POST[‘nom’] ?? ‘Anonyme’ ;
L’instruction switch...case
switch(expression)
{ case valeurN:
case valeur1: bloc d’instructions N;
bloc d’instructions 1; break;
break; default:
bloc d’instructions par défaut;
case valeur2:
break;
bloc d’instructions 2; }
break;
…………………
Les instructions de boucle
La boucle for
for(expression1; expression2; expression3)
{
//instruction ou bloc;
}
<?php
for($i=1;$i<7;$i++){
echo "<h$i> $i: Titre de niveau $i </h$i>
}
?>
La boucle while
while(expression)
{
//Bloc d'instructions répéter
}
La boucle do...while
do {
//bloc d'instructions
}
while(expression);
La boucle foreach
Introduite à partir de la version 4.0 de PHP, l’instruction
foreach permet de parcourir rapidement l’ensemble des
éléments d’un tableau, ce que fait aussi une boucle for, mais
foreach se révèle beaucoup plus efficace.
foreach($tableau as $valeur)
{
//bloc utilisant la valeur de l'élément courant
}
La boucle foreach
La variable $valeur contient successivement chacune des
valeurs du tableau.
Pour lire les valeurs et les clés (ou les indices), la deuxième
syntaxe est la suivante :
foreach($tableau as $cle=>$valeur)
{
//bloc utilisant la valeur de l'élément courant
}
Les tableaux
Créer des tableaux : la fonction array()
• Quelques fonctions :
• date(‘’$format’’) : retourne une chaîne de caractères contenant la date et/ou l’heure
locale au format spécifié
• getdate() : retourne un tableau associatif contenant la date et l’heure
• checkdate($month, $day, $year) : vérifie la validité d’une date
• mktime ($hour, $minute, $second, $month,$day, $year) : retourne le timestamp UNIX
correspondant aux arguments fournis c’est-à-dire le nombre de secondes entre le
début de l'époque UNIX (1er Janvier 1970) et le temps spécifié
• time() : retourne le timestamp UNIX de l’heure locale
Dates et heures
• Exemple 1 :
• echo date(''Y-m-d H:i:s'');
• /* affiche la date au format MySQL : ‘2002-03-31 22:30:29’ */
• Exemple 2 :
• if(checkdate(12, 31,2001))
• echo ‘’La St Sylvestre existe même chez les anglais !!!’’;
• Exemple 3 :
• $aujourdhui = getdate();
• $mois = $aujourdhui['mon'];
• $jour = $aujourdhui['mday'];
• $annee = $aujourdhui['year'];
• echo ''$jour/$mois/$annee'';// affiche ‘31/3/2002’
Dates et heures
• Les formats pour date :
• d Jour du mois sur deux chiffres [01..31] j Jour du mois sans les zéros initiaux
• l Jour de la semaine textuel en version longue et en anglais
• D Jour de la semaine textuel en trois lettres et en anglais
• w Jour de la semaine numérique [0..6] (0: dimanche)
• z Jour de l'année [0..365]
• m Mois de l'année sur deux chiffres [01..12] n Mois sans les zéros initiaux
• F Mois textuel en version longue et en anglais
• M Mois textuel en trois lettres
• Y Année sur 4 chiffres y Année sur 2 chiffres
• h Heure au format 12h [01..12] g Heure au format 12h sans les zéros initiaux
• H Heure au format 24h [00..23] G Heure au format 24h sans les zéros initiaux
• i Minutes [00..59] s Secondes [00.59]
• a am ou pm A AM ou PM
• L Booléen pour savoir si l'année est bisextile (1) ou pas (0)
• S Suffixe ordinal anglais d'un nombre (ex: nd pour 2)
• t Nombre de jour dans le mois donné [28..31]
• U Secondes depuis une époque Z Décalage horaire en secondes [-43200..43200]
Dates et heures
Les clés du tableau associatif retourné par getdate :
• seconds : secondes
• minutes : minutes
• hours : heures
• mday : jour du mois
• wday : jour de la semaine, numérique
• mon : mois de l'année, numérique
• year : année, numérique
• yday : jour de l'année, numérique
• weekday : jour de la semaine, textuel complet en anglais
• month : mois, textuel complet en anglais
Les formulaires
Les formulaires (PHP)
1. Créez une base de donnée nommée « storedb »
contenant les tables « Article » et « Categorie ».
2. Créez les formulaires PHP pour faire les
enregistrements dans les tables Article et Categorie.
3. Créez des formulaires pour lister les enregistrements
des deux tables.
Les formulaires
Exercice 1
Créez un formulaire de saisie d’adresse e-mail
contenant un champ caché destiné à récupérer le type
du navigateur de l’utilisateur. Le code PHP affiche
l’adresse et le nom du navigateur dans la même page
après vérification de l’existence des données.
Les formulaires
Exercice 2
Créez un formulaire demandant la saisie d’un prix
HT et d’un taux de TVA. Le script affiche le
montant de la TVA et le prix TTC dans deux zones
de texte créées dynamiquement. Le formulaire
maintient les données saisies.
Les fonctions
Définir une fonction
En règle générale, une fonction peut être définie n’importe où dans un
script, y compris après avoir été utilisée.
function mafonction($x,$y,...){
//code de définition de la fonction
return $var;
}
Définir une fonction
Pour appeler la fonction, vous écrivez :
mafonction($a,$b,...)
ou encore :
mafonction(4,5,...)
Définir une fonction
Les paramètres peuvent être ici indifféremment des scalaires ou des
variables. Il importe dans les deux cas de donner à la fonction autant de
paramètres que dans sa déclaration, sauf si vous avez défini des
paramètres par défaut.
La position de la déclaration d’une fonction dans le script n’a pas
d’importance depuis PHP 4. Vous pouvez ainsi appeler une fonction au
début du script alors qu’elle n’est définie qu’en fin de script. Il est
toutefois préférable de définir les fonctions en début de script, comme
dans PHP 3, car cela améliore la présentation et la lisibilité du code.
Pour les fonctions définies dans des scripts séparés, il est préférable de
les inclure dès le début du script qui les utilise, et ce au moyen de
l’instruction include() ou require().
PHP & MYSQL
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>