les variables en PHP

les variables en PHP - PHP - Programmation

Marsh Posté le 15-01-2005 à 22:55:05    

Salut a tous,
J'ai decidé de me mettre un peu au PHP, et apres avoir lu quelques tutos sur le sujet je trouve etrange le systeme de variables.
 
Je n'ai pas d'experience dans les langages utilisés avec internet, mis a part les bases de html qui n'est pas un langage de programmation, et je voudrais un peu comprendre ou sont stockée les variables, sous quel forme etc.
 
les variables n'ont pas de type elles peuvent etres créées par le client dans des formulaire avec POST ou GET, tous cela me parait etrange.
 
Merci si vous pouviez m'apporter quelques precisions...

Reply

Marsh Posté le 15-01-2005 à 22:55:05   

Reply

Marsh Posté le 15-01-2005 à 23:17:05    

PHP est un langage de script à l'origine : le but est de faire un langage simple et rapide pour générer du code. Il est largement inspiré par PERL dont on ressent l'héritage. Mais il est aussi inspiré par C  et par java (pour l'orientation object du php5).
 
Comme tout langage de script, il n'est pas réellement compilé mais interprété : le code est analysé au fur et à mesure (enfin c'était parfaitement vrai jusqu'en PHP3).
Le parti pris de cette simplicité c'est de ne pas typer les variables, elles ont bien un type interne mais son converties en fonction du contexte d'utilisation. Bien évidemment comparé au langages typés, ça peut poser des problèmes pour ce qui est du débogage.
 
Au final les variables sont stockés dans un tableau ou plutôt une table de hashage qui à partir du nom rend la valeur : rapide efficace, et comme cela ne se base pas sur l'adresse (langages compilés), cela permet de faire du code compilé à la volée (fonction éval) ou du déréférencement "à la php" (ex. : $$toto qui équivaut à avoir écrit $[valeur de toto]). Mais les possibilités sont bien plus grandes.
 
le cout de la création par POST ou GET est du à une option de configuration (register_global) qui transforme les paramètres en variables globales : avec cette option, la page http://www.site.net/toto.php?foo=bar fera que dans la page toto la variable $foo sera initialisée à "bar". Mais cette option (horrible et à proscrire pour des raisons de sécurité) est désactivée par défaut depuis php 4.2
 
Voilà, j'ai fini ma petite intro
 
++

Reply

Marsh Posté le 15-01-2005 à 23:32:47    

ok  
merci pour cette jolie petite intro dreameddeath
je vais essayer de trouver quelque détails sur la table de hachage en particulier  
 
a bientot surement pour une autre question et encore merci

Reply

Marsh Posté le 15-05-2005 à 16:15:52    

Salut!!!
Et comment je peux faire alors si je veux pouvoir choisir la valeur de ma variable $foo dans la barre d'adresse?

Reply

Marsh Posté le 15-05-2005 à 19:26:34    

Ruliane a écrit :

Salut!!!
Et comment je peux faire alors si je veux pouvoir choisir la valeur de ma variable $foo dans la barre d'adresse?


 
http://fr.php.net/manual/fr/reserv [...] iables.get

Reply

Marsh Posté le 15-05-2005 à 20:55:15    

Euh... j'ai lu mais je dois avouer que je n'ai pas compris grand chose :( Quelqu'un peut m'expliquer ce que sont $_GET et $HTTP_GET_VARS?

Reply

Marsh Posté le 15-05-2005 à 21:18:17    

http://url.fr/super.php?truc=pouet
 
la variable truc affectée de la valeur pouet sera recuperable dans super.php grace a $_GET['truc']
 
$HTTP_GET_VARS est obsolete mais avait la meme fonction.

Reply

Marsh Posté le 15-05-2005 à 21:19:55    

$_GET est un tableau surper global accessible dans tous les scripts, toutes les fonctions, tous les fichiers inclus. Ce n'etait pas le cas avec HTTP_GET_VARS

Reply

Marsh Posté le 15-05-2005 à 21:21:33    

J'ai compriiis! Faut aller le chercher avec $_GET['foo']; c'est ça? (apparament oui puisque ça marche ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed