Langage de programmation PHP
Chapitre 1. Introduction
Chapitre 2. Variables, opérateurs et expressions
Chapitre 3. Instructions de contrôle
Chapitre 4. Tableaux
Chapitre 5. Entrées/Sorties
Chapitre 6. Réutilisation de code
Chapitre 7. Lecture/écriture de fichiers
Chapitre 8. Fonctions diverses
Chapitre 9. Sérialisation
Chapitre 10. Fonctions orientées réseau
Chapitre 11. Base de données
Chapitre 12. Manipulations d’images
Chapitre 13. Programmation objet : PHP et les classes ( PHP 4/PHP 5)
Chapitre 14. Gestion des Exceptions (PHP 5)
Chapitre 15. Contrôle de sessions
Chapitre 16. PHP - Ajax
Chapitre 17. Webservices & SOAP
Chapitre 18. PHP en chiffre
Chapitre 19. Conclusion
Chapitre 20. Bibliographie
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

Chapitre 2. Variables, opérateurs et expressions

2.1 Identifiants
PHP propose trois types de données : les entiers, les décimaux, et les chaînes de caractères. PHP respecte la casse lors de l’identification des variables. Ainsi, maVariable est différent que MaVariable. Une variable est toujours précédée du signe $ que les amateurs de Shell connaissent bien.

2.2 Types de données
En fait, quand on utilise du PHP, on ne s’occupe pas de distinguer le types des variables. Elles prennent le type des données qui leur sont affectées. Néanmoins, il est possible de contourner ceci si nécessaire en utilisant la fonction settype qui attribue un type spécifique à une variable. Il existe une autre solution par l’utilisation des fonctions intval, doubleval et strval permettant de réaliser des conversions de chaînes en entiers par exemple pour intval.

Il existe néanmoins un certain nombre de types de données :

  • Entier : pour les nombres entiers,
  • Float (ou Double) : nombres réels,
  • Chaînes : pour les chaînes de caractères,
  • Booléen : pour des valeurs de type vrai ou faux,
  • Tableau : pour stocker des données du même type,
  • Objet : pour stocker des instances de classes,

Deux types particuliers sont également proposés :

  • NULL : pour des valeurs de type non définies,
  • ressource : retournées fréquemment par des fonctions accédant à des ressources externes (fichiers, BD, etc.). Elles sont rarement manipulées.

Exemple

< ?
$temperature = “ 30° ” ;
settype($temperature, “ double ”) ;
print “ Double : $temperature <BR> ” ;
settype(“$temperature”, “integer”) ;
print “ Integer : $temperature <BR> ” ;
settype(“$temperature”, “string”) ;
print “ String : $temperature <BR>”;

$temperature = “ 30° ” ;
print ” <BR>String <BR>”;
print “strval($temperature)”;
print ”<BR>Double <BR>”;
print “doubleval($temperature)”;
print ”<BR>Integer <BR>”;
print “intval($temperature)”;

$foo = "0"; // $foo est une chaine
$foo++; // $foo est une chaine
$foo += 1; // $foo est maintenant un entier
$foo = $foo + 1.3; // foo est maintenant un double
$foo = 5 + "10 Little Piggies"; // $foo is integer (15)
$foo = 5 + "10 Small Pigs"; // $foo is integer (15)
?>


Il est également possible de réaliser ceci de manière implicite en utilisant la coercition vue en C. Ainsi, intval ($temperature) et (integer) $temperature sont identiques.

Afin de connaître le type des variables, un certain nombre de fonctions sont disponibles et retournent true ou false :

  • is_array(),
  • is_double(), is_float(), is_real() - c'est la même fonction,
  • is_long(), is_int(), is_integer() - c'est la même fonction,
  • is_string(),
  • is_object(),
  • is_ressource(),
  • is_null(),
  • is_scalar() - si la variable est scalaire, c'est à dire si c'est un entier, une chaîne, ou un double.
  • is_numeric() - si la variable est un nombre ou une chaîne numérique,
  • is_callable() - le la variable est un nom de fonction valide.

Trois fonctions permettent également de connaître l'état de variables :

  • isset () : retourne true ou false selon que la variable passée en paramètre existe ou pas,
  • unset () : supprime la variable passée en paramètre,
  • empty() : retourne un booléen selon que la variable est non vide et non nulle.

Enfin, trois fonctions aident à la réalisation du transtypage de variables : 

  • int intval(variable),
  • float floatval(variable),
  • string strval(variable).

Chacune de ces fonctions retourne la valeur transtypée de l'argument passé en paramètre.

2.3 Portée des variables
A l’inverse d’autres langages comme le C, il est inutile en PHP de déclarer les variables avant de les utiliser. C’est l’une des caractéristiques des langages interprétés.
Il est à noter que comme dans la plupart des langages, la portée des variables égale celle du bloc où elle a été utilisée pour la première fois (ce qui équivaut à une déclaration). Dans les cas où une variable déclarée dans une fonction est nécessaire au niveau global, il est possible de lui étendre sa portée de manière à ce qu’elle continue d’exister une fois la fonction terminée. 
On pourra pour cela la déclarer comme globale :

Exemple

function maFonction( ) {
global maVar ;

}

Une autre manière plus élégante est d’utiliser le mot clé static qui dans la plupart des cas permet de s’affranchir de l’utilisation peu élégante de global.

Exemple

static mavar ; // static a le même comportement qu’en C

2.4 Assignation de valeurs aux variables
Lorsque l’on assigne une valeur à une variable (=), son type change pour correspondre au type de données qui lui est affecté. Ce fonctionnement est l’inverse du C qui lui essaie de convertir la donnée au type de la variable.

Exemple 

$machaine1 = “ Gérard ” ;
$machaine2 = “ Dupont” ;
integer var1 ; // déclaration de variable avec typage
$var1 = 12 ;
$var1 = -45 ;
double var1 ;
$var1 = -3.14

le signe \ permet d’éviter l’affichage du caractère suivant :

\ ‘’ Guillemets doubles
\\ Caractère antislash
\n Nouvelle ligne
\r Retour chariot
\t Tabulation
\x00 - \xFF Caractères hexadécimaux

Il est à noter qu’il est tout à fait possible d’inclure une variable dans une chaîne de caractères :

Exemple 

print “ Je suis : $machaine1 <BR> ” ; // Affichera “ Je suis Gérard ”

2.5 Constantes
Il existe un certain nombre de constantes crées automatiquement par PHP (nous en verrons quelques unes plus loin). Il est également possible de définir ses propres constantes avec define (nomconstante, valeur constante). En réalité, une constante est une variable dont le contenu ne peut être paramétré qu’une seule fois. Comme les variables, les constantes sont par défaut sensibles à la casse. Associé à la fonction define, une autre fonction defined(‘’nom constante’’) peut être utilisée afin de tester l’existence d’une constante (elle retournera true ou false selon le cas).

Exemple 

define(“MACONSTANTE”, “Hello World”) ;
if (defined(‘’MACONSTANTE’’)) {
print ‘’La valeur de ma constante est : ‘’.MACONSTANTE //Attention, on accède au contenu sans le $.
}

2.6 Opérateurs logiques, binaires, autres

Nous n’allons pas décrire l’utilisation de chacun des opérateurs, ils sont quasi-identiques au C.

Opérateurs arithmétiques : 


Addition
Soustraction
* Multiplication
Division
Modulo
++ Incrémentation
-- Décrémentation

Opérateurs logiques :

Inférieur à
> Supérieur à
<= Inférieur ou égal à
>= Supérieur ou égal à
==Égal à
!= Différent
AND && Et
OR || Ou
XOR Ou exclusif
! Sauf

Autres opérateurs

Le . permet de faire une concaténation (print $var1.$var2 affichera le contenu de var1 concaténé à var2).


Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante