Vous êtes sur la page 1sur 20

Licence MIAGE

Le langage php

Chapitre 2
Types de variables
Table des matières
Le type booléen..........................................................................................................................................................3
Le type entier.............................................................................................................................................................4
Le type réel.................................................................................................................................................................5
Les chaînes de caractères (1/2)..................................................................................................................................6
Les chaînes de caractères (2/2)..................................................................................................................................7
Les opérateurs de manipulation de chaînes de caractères..........................................................................................8
Les instructions d'affectation.....................................................................................................................................9
Un exemple..............................................................................................................................................................10
Les différents conteneurs.........................................................................................................................................11
Le transtypage implicite...........................................................................................................................................12
Le transtypage explicite...........................................................................................................................................13
Fonctions de conversions.........................................................................................................................................14
Connaître l'état d'une variable..................................................................................................................................15
Connaître les données contenues dans une variable................................................................................................16
Connaître le type d'une variable...............................................................................................................................17
Fonctions pour connaître le type ou l'état d'une variable.........................................................................................18
L'instruction exit......................................................................................................................................................19
Gérer les erreurs.......................................................................................................................................................20
Le type booléen
Un booléen peut prendre deux valeurs TRUE ou FALSE (insensible à la casse)

$var=FALSE; // FALSE, False, false, ...


$var2=True; // TRUE, True, true, ...

Certaines expressions peuvent etre évaluées à FALSE


• Booléen : FALSE
• Entier : 0 (zéro)
• Nombre flottant : 0.0 (zéro)
• Chaîne : chaîne vide "" ou "0" (zéro)
• Tableau : tableau vide sans aucun élément
• Objet : objet vide sans aucun élément
• Constante NULL

Dans tous les autres cas, la valeur retournée est TRUE (-1 est considéré comme TRUE)

Les tests de conditions dans les structures de controles effectuent une conversion booléenne de la condition
if($var==true) echo "ok";
if($var) echo "ok";

Le type booléen est nommé bool


Le type entier
Les entiers représentent les nombres naturels positifs ou négatifs

Les entiers sont codés sur 32 bits mais cela dépend de l'architecture
valeur entière comprise entre -2 147 483 647 et +2 147 483 648

Lors de la conversion d'un booléen en entier : FALSE devient 0 et TRUE devient 1

Le type entier est nommé int


Le type réel
Les réels représentent les nombres à virgules ; la virgule est spécifiée par le point .

La puissance de 10 s'exprime avec le e ou E

$var=1.234;
$var2=1.1e4; // 1.1 * 10^4 : 11000

Le type réel est nommé float


Les chaînes de caractères (1/2)
Une chaîne de caractères est délimitée par " et " ou ' et '
echo "Affiche aussi les accents comme chaînes de caractères";
echo 'Affiche aussi les accents comme chaînes de caractères';

Caractère de retour à la ligne et tabulation : \n et \t


echo "\n"; ou echo '\n';

Caractère d'échappement : \
echo "Ceci est un cours de \"PHP\""; // Ceci est un cours de "PHP"

Les apostrophes indiquent une protection forte ie sans substitution


$s = "azerty";
echo "$s\n"; // azerty
echo '$s\n'; // $s\n
echo "Clavier '$s'\n"; // Clavier 'azerty'
echo 'Clavier "$s"\n'; // Clavier "$s"\n
echo 'Attention l\'abus d\'alcool est dangereux';
$var=2345;
echo "La valeur de \$var est $var\n"; // La valeur de $var est 2345
Les chaînes de caractères (2/2)
Voici les caractères à échapper :
\n Nouvelle ligne (linefeed, LF ou 0x0A (10) en ASCII)
\r Retour à la ligne (carriage return, CR ou 0x0D (13) en ASCII)
\t Tabulation horizontale (HT ou 0x09 (9) en ASCII)
\\ Antislash
\$ Caractère $
\' Caractère apostrophe
\'' Caractère guillemet
\[0-7] Une séquence de caractères représentant un nombre en notation octale
\x[0-9A-Fa-f] Une séquence de caractères représentant un nombre en notation hexadécimale

Le type chaîne de caractères est nommé string


Les opérateurs de manipulation de chaînes de caractères
Opérateur de concaténation : la concaténation de chaînes est réalisée par l'opérateur .
$s1 = "Je "; $s2 = "suis"; $s = $s1.$s2; echo "$s"; // Je suis

Ajout de texte à une chaîne : opérateur .=


$str = "Salut les Amis !\n";
$str .= "Comment ca va ?"; // "Salut les Amis !\nComment ca va ?
$str2 = $str."\n"; // "Salut les Amis !\nComment ca va ?\n

Saisi de texte dans une variable : la saisie de texte est réalisée par l'opérateur <<<
$str= <<<EOD
Example of string;
spanning multiple lines
using heredoc syntax.
EOD;
echo $str."\n";

Délimitation d'un identificateur : opérateur { }


$fic='toto.fic';
$fics='riri fifi loulou';
echo "$fics ${fic}s"; // affiche riri fifi loulou toto.fics

Accès à n'importe quel caractère dans une chaîne : opérateur []


il faut indiquer la position du caractère (commence à 0) entre [] collées juste après le nom de la variable
echo "$fic[3]"; // affiche o
Les instructions d'affectation
Opérateur Signification
++$a Incrémente $a de 1 puis renvoie $a
$a++ Renvoie $a puis incrémente $a de 1
--$a Décrémente $a de 1 puis renvoie $a
$a-- Renvoie $a puis décrémente $a de 1
= Affectation simple
+= addition puis affectation
-= Soustraction puis affectation
*= Multiplication puis affectation
/= Division puis affectation
%= Modulo puis affectation

$a = $a + 3 ; identique à $a += 3 ;
Un exemple

<?php
$string = "azerty";
echo '$string=',$string,"\n";
define(CONSTANTE, 12);
echo 'CONSTANTE=',CONSTANTE,"\n"; $ php essai.php
$prénom = "Eric"; $string=azerty
$Eric = "Pipard"; CONSTANTE=12
echo '$$prénom=',$$prénom,"\n"; $$prénom=Pipard
echo '\n',"\n"; \n
echo'$prénom.$Eric'," egal ",$prénom.$Eric,"\n"; $prénom.$Eric egal EricPipard
echo "Le prénom contenu dans '$prénom' est $prénom\n"; Le prénom contenu dans 'Eric' est Eric
$suffixe = ".php"; Les fichiers php doivent s'écrire fichier.php
echo "Les fichiers php doivent s'écrire fichier$suffixe\n";
?>
Les différents conteneurs
Variable simple
n'importe quelle valeur : booléen, réel, entier, chaînes de caractères
$maVariable = 52.8;

Tableau (array)
collection de variables
$mois = array("octobre","novembre","décembre");

Objet (object)
les objets se créent avec l'instruction class
pour créer une instance de l'objet il faut utiliser le mot clé new
class test {
function affiche_hello() {
echo "Hello !";
}
}
$obj=new test;
$obj->affiche_hello();

Ressource
fichiers, connexions, ...
$maConnexion = mysqli_connect("monServeur", "monNom","MonPass");
Le transtypage implicite
Le type de variable change quand le contenu change
$cow = "0"; // $cow est une string ("0")
$cow = $cow + 2; // $cow est maintenant un integer (2)
$cow = $cow + 1.3; // $cow est maintenant un float (3.3)

La valeur numérique est définie par le début de la chaîne ; si la chaîne commence par une valeur numérique, elle
sera utilisée, sinon elle sera égale à 0
$cow = 5 + "10 Little Piggies"; // $cow reste un integer (5+10)
$cow = 5 + "Little Piggies"; // $cow reste un integer (5+0)

Changement de type de conteneur


$age = 1; // $age est un entier égal à 1
$age[0] = "f"; // $age devient un tableau
Le transtypage explicite
Conversion explicite avec la fonction boolean settype()
$prix = 10; // $prix est de type entier
settype($prix,"float"); // $prix est convertie en float
$pression = "5bars"; // variable de type chaîne
settype($pression, "integer"); // $pression contient 5
$pression = "bar"; // variable de type chaîne
settype($pression, "integer"); // $pression contient maintenant 0

Conversion explicite en forçant le type


le nom du type final est écrit entre parenthèses devant la variable à convertir
$nouvelleVariable = (int)$ancienneVariable;
$intPrice = 10;
$floatPrice = (float) $intPrice;

Les différentes conversion


conversion vers un entier
conversion vers un booléen
conversion vers un réel
conversion vers une chaine
conversion vers un tableau
conversion vers un objet
Fonctions de conversions
string strval ($var);
retourne la variable $var convertie en string

int intval ($var [, int $base]);


retourne la variable $var convertie en valeur entière dans la base spécifiée

float floatval ($var);


retourne la variable $var convertie en float

La variable $var doit etre un scalaire


Connaître l'état d'une variable
Une variable PHP peut avoir trois états
inexistante (not set) et isset($var) retourne faux
existante mais vide (empty) meme si il y a 0 dedans et empty($var) retourne vrai
existante et pleine (avec une valeur != 0) et isset($var) retourne vrai et empty($var) retourne faux

<?php
Inexistante
if (isset($vide)) echo "Existante\n"; else echo "Inexistante\n"; Vide
if (!empty($vide)) echo "Pleine\n"; else echo "Vide\n";
Existante
$aussiVide = 0; Vide
if (isset($aussiVide)) echo "Existante\n"; else echo "Inexistante\n";
if (!empty($aussiVide)) echo "Pleine\n"; else echo "Vide\n";
?>
Connaître les données contenues dans une variable
Pour connaître lee données contenues dans une variable : var_dump($variable)
var_dump($variable) retourne le type de donnée et la valeur associée à la variable

<?php NULL
$aussiVide = 0; int(0)
$plein = "Plein"; $array = array(1, 2); string(5) "Plein"
echo var_dump($vide); array(2) {
echo var_dump($aussiVide); [0]=>
echo var_dump($plein); int(1)
echo var_dump($array); [1]=>
class Exemple {}; $objet = new Exemple(); int(2)
echo var_dump($objet); }
$objet1 = new Exemple(); object(Exemple)#1 (0) {
echo var_dump($objet1); }
?> object(Exemple)#2 (0) {
}
Connaître le type d'une variable
La fonction gettype() retourne le type d'une variable

<?php
$int = 0;
$reel = 0.0;
$bool = TRUE;
$chaine = "ert";
$array = array(1, 2);
echo gettype($int); echo "\n";
echo gettype($reel);echo "\n";
echo gettype($bool);echo "\n";
echo gettype($chaine);echo "\n";
echo gettype($array);echo "\n";
echo gettype($null);echo "\n";
class Exemple {}; $objet = new Exemple();
echo gettype($objet);
?>
Fonctions pour connaître le type ou l'état d'une variable
Fonction Utilisation Exemple
Dès qu'une valeur a été affectée à une variable celle-ci devient
isset if (!isset($myVar))...
"set"
empty Pour ne pas etre "empty" une variable doit contenir une valeur != 0 if (empty($myVar))...
is_numeric Contient une valeur numérique différente de 0 (entre "" ou pas) if (is_numeric($myVar))...
is_string Indique si la variable est une chaînes de caractères echo is_string($myVar)...
is_array Indique si la variable est un tableau if (is_array($myVar))...
is_bool Indique si une variable est de type booléen if (is_bool($myVar))...
is_double
is_float Indique si une variable est de type double ou float ou réel if (is_real($myVar))...
is_real
is_integer
is_long Indique si une variable est de type entier ou long if (is_int($myVar))...
is_int
is_null Indique si une variable contient null if (is_null($myVar))...
is_object Indique si une variable est de type objet if (is_object($myVar))...
is_ressource Indique si une variable est de type ressource if (is_ressource($myVar))...
L'instruction exit
Cette instruction arrete l'exécution d'un programme

Syntaxe : exit("message"); où message est un message de votre choix

<?php
echo "Le début\n";
exit("Le dernier echo ne sera pas exécuté\n"); $ php essai.php
echo "Fin"; Le début
?> Le dernier echo ne sera pas exécuté
Gérer les erreurs
PHP supporte un opérateur de controle d'erreur : le symbole @

Quand une expression commence par ce symbole, aucune erreur générée par cette expression n'apparaîtra

Si la mémorisation des erreurs est validée (option track_errors est à On dans le php.ini), cette erreur sera
mémorisée dans $php_errormsg

Une fonction nommée die permet d'afficher vos propres messages d'erreur (celle-ci arrete le programme)

<?php
/* on provoque volontairement une erreur */ $ php essai.php
$my_file = @file ('non_existent_file') or Fichier impossible à ouvrir
die ("Fichier impossible à ouvrir");
?>

La fonction die() est un alias de la fonction exit()

Vous aimerez peut-être aussi