|
|
Cours PHP N°2 : les variables
Les variables de base Tout comme PERL, le type de la variable dépend de ce que vous mettez dedans et de ce que vous en faites. Par contre vous pouvez forcer le type d'une variable ou modifier ce type si nécessaire.Le caractère qui précède toutes les variables php est le dollar : $. $variable = "chaine"; Les variables dynamiques Vous pouvez créer des variables dynamiques, le nom de la variable est lui même une variable. La notation est le double dollar : $$.$variable = "etudiant"; Cette possibilité permet ainsi de créer des variables dont le nom se modifie grâce au programme que vous faites: etudiant0, etudiant1 ... Pour l'affichage vous pouvez par exemple utiliser la syntaxe : print $$variable; ouprint "La valeur de $variable est : ${$variable}"; Exemple d'une page utilisant des variables dynamiques
1 <HTML> Explications
Si vous regardez le source via votre navigateur vous obtenez:
Utilisation des références dans les variables Vous pouvez travailler sur les références (pointeur) comme en C par exemple. Ceci vous permettra par exemple de conserver la persistence d'un valeur à l'intérieur de variables et de la modifier quelque soit sa position dans le programme.Vous devez préfixer votre variable par le caractère : & $pointeur = &$variable; La variable pointeur ne représentera pas le contenu mais la référence qui pointe sur la valeur de la variable variable (la zone mémoire où elle est stockée). Si la valeur de la variable est modifiée et ceci quelque soit l'endroit où elle se situe dans la programme, la valeur de la variable pointeur le sera aussi. Exemple
1 <HTML> Explications
Si vous n'aviez pas affecté à la variable $pointeur la référence vous auriez alors obtenu le résultat suivant : modification de la ligne 10 en : 10 $pointeur=$variable;
Quelques fonctions de traitement des chaînes
Cette fonction va permettre de trouver le nombre de caractères contenus dans une chaîne simple. $nbcar=strlen($variable); Renvoie VRAI si la sous chaîne existe dans la chaîne. Attention : pour la fonction strstr la casse est importante. strstr($chaine,$souchaine); Permet de récupérer une partie de la chaîne en indiquant l'index du caractère à partir duquel la recherche se fait. Vous pouvez aussi indiquer le nombre de caractère à récupérer. Si l'index est négatif, la recherche se fait depuis la fin de la chaîne. $recup=substr($variable,$index,$longueur); Permet de récupérer les éléments séparés par un ou des délimiteurs. Attention, le délimiteur n'apparaît pas dans la chaîne récupérée. Lorsque vous utilisez cette fonction, la chaîne de départ est stockée en mémoire, ce qui permet ensuite de pouvoir relancer strtok sans nécessité d'indiquer le nom de la variable où se passe la recherche. Ce qui est pratique sinon vous referiez la recherche toujours sur la même partie et obtiendriez toujours le même résultat à savoir la première occurrence trouvée. Vous pouvez donc faire la recherche sur toute la chaîne en utilisant une boucle while. $recup=strtok($variable,$delimiteur); ou$recup=strtok($delimiteur); Cette fonction renvoie dans une tableau, les valeurs comprises entre un séparateur que vous indiquez en argument. A la différence de strtok, même si vous indiquez plusieurs caractères comme délimiteurs, celui-ci ne sera vu que comme un seul. $liste=explode($delimiteur,$variable); Cette fonction a l'effet inverse de explode. Elle permet à partir d'une liste de créer une variable simple. Les différents éléments de la liste seront « recollés » via ce séparateur. $variable=implode($liste,$delemiteur); Cette fonction permet de séparer les éléments d'une variable simple en utilisant des expressions régulières (et, ou ...). Attention la casse de l'expression régulière est très importante (nombre de blancs dans le séparateur ...). Le résultat est stocké dans une liste. $liste=split("$delimiteur",$variable); Ces trois fonctions permettent de supprimer à différents endroits d'une chaîne simple, les caractères « neutres » tels les espaces, tabulations, retour à la ligne ... Ces fonctions renvoient une chaîne « nettoyée ». trim les supprime tous en début en et fin de chaîne. ltrim les supprime tous en début de chaîne. chop les supprime tous en fin de chaîne.
$variable=trim($variable); Cette fonction remplace toutes les occurrences d'une chaîne par une autre. $nettoie=str_replace($avant,$apres,$variable); Ces fonctions permettent de transformer en majuscule ou minuscule tous les caractères contenus dans une chaîne.
$nouveau=strtoupper($variable); $modif=ucwords($variable); Addslashes permet de mettre un slashe devant les caractères apostrophe ('), double apostrophe (") et le slashe (\) lui-même. Cette fonction peut être très utile lors de requête SQL. Ces caractères étant spécifiques, les décommenter devient important. Stripslashes est la fonction inverse. $modif=addslashes($variable); Les variables composées Les listes Les listes sont des tableaux a deux dimensions. La première est un indice numérique entier et la deuxième la valeur associée à cet indice.Une liste permet ainsi de stocker plus d'un valeur dans un même structure. Imaginez un meuble constitué de rangements. Une colonne servira à indiquer l'ordre de rangement on appelle aussi cela une clé (ici les indices numériques) tandis que l'autre colonne servira à ranger les valeurs (un objet). Vous pouvez accéder à un objet directement en indiquant le numéro de la case où il est rangé. Pour définir une liste vous utiliserez le même caractère que pour une variable simple : $ L'affectation se fera de la façon suivante :
$liste=array("escargot de bourgogne","cagouille","manchot","bretagne","php4"); $liste[1] renverra la valeur cagouilleAttention les indices commencent à la valeur 0. Vous pouvez utiliser la fonction count qui vous renverra le nombre d'élément contenu dans la liste. Les tableaux associatifs a deux dimensions Ces tableaux, à la différence des listes, auront comme indice des chaînes de caractères. Ces indices se nomment des clés. Une clé est forcément associée à une valeur. Vous obtenez donc un couple.Pour définir un tableau vous utiliserez le même caractère que pour une variable simple ou pour une liste : $ L'affectation se fera de la façon suivante : $tableau=array(nom=>Jacquenod,prenom=>frederic,age=>"En evolution constante"); Si la clé ou la valeur n'est pas un simple mot ou comporte des caractères blancs ... n'oubliez pas les guillemets.Affectation d'une valeur à un indice: $tableau[adresse]="Paris 75"; Pour parcourir cette structure vous utiliserez la boucle foreach (voir boucles).Il existe un tableau associatif prédéfini qui se nomme GLOBALS et qui contient les informations sur le script, son contenu (variables ...) et le serveur web. D'autres tableaux associatifs existent comme HTTP_GET_VARS et HTTP_POST_VARS qui contiennent les paires nom-valeurs en fonction de la méthode de transmission utilisée dans le formulaire (get ou post). Ces deux tableaux peuvent être utiles lorsque vous ne savez pas quels sont les variables qui seront renvoyées par le formulaire. Les tableaux associatifs multidimentionnels Le tableau associatif HTTP_POST_VARS est un tableau particulier car multidimentionnel. Pour le moment nous n'avons vu que les tableaux à 2 dimensions.Mais rien n'empêche d'associer un autre tableau à un élément du premier. Vous aurez un tableau de tableaux. Imaginons un tableau contenant les informations sur chaque cours donné dans une université. Un cours est caractérisé par son intitulé, son professeur, la durée du cours, le lieu ... Affectation complète du tableau associatif
$tableau=array( Le premier tableau est situé à l'indice 0 et ainsi de suite. Ceci du fait que nous n'avons spécifié aucune clé. Mais rien n'empêche d'en spécifier une.
$tableau=array( $tableau[0][duree]=5; ou$tableau[cours1][duree]=5; Dans les deux cas on affecte la valeur 5 à la clé duree du premier tableau.Travail sur le type de la variable Par défaut, PHP ne réclame pas de typage des variables, c'est à dire la déclaration de leur type, cependant il est possible de "typer" et de connaître le type d'une variable Parfois cela pourrait pourtant être utile. Voici les fonctions qui le permettent.gettype et settype PHP4 permet grâce aux fonctions gettype et settype d'obtenir le type d'une variable ou de modifier ce type.gettype($variable); etsettype ($variable,string);
Tester le type de la variable Vous pouvez utiliser des fonctions permettant de tester le type de la variable et elles renvoient VRAI (ou 1) si le type est le bon.
Typage des variables Vous pouvez aussi forcer le type de la valeur en utilisant les fonctions intval(), doubleval() et strval().Exemple
1 <? Les constantes Vous disposez aussi de la possibilité de créer des constantes qui auront donc la même valeur tout au long de votre programme. Ceci peut etre utile par exemple pour positionner une valeur de débugage DEBUG qui tracera les étapes du programme si elle vaut 1 et ne fera rien si elle vaut 0 :define ("DEBUG",1); Vous pouvez aussi vous en servir pour positionner un préfixe pour vos pages web que vous intégrerez dans vos liens hypertexte, vos références d'images ...define("PRE","http://www.netalya.com"); On l'appelle ensuite comme ceci :<php echo PRE ?> Tests sur les variables Vous avez à votre disposition les fonctions isset, unset et empty qui vous permettent de tester la validité, l'existence d'un contenu ...
Nous vous informons que ce cours constitue une œuvre protégée en France par le Code de la Propriété Intellectuelle, et à l’étranger par les conventions internationales en vigueur sur le droit d’auteur. La violation de l’un des droits d’auteur de l’œuvre est un délit de contrefaçon. Il est donc interdit, à titre privé ou public, de reproduire, copier, vendre, revendre ou exploiter, que ce soit dans un but commercial ou purement gratuit, ce cours, sauf accord exprès et préalable de son auteur. |
|