
Toute une panoplie de fonctions liées aux variables se trouvent sur Dev Nexen
Liste des types PHP
quatres types scalaires :
Deux types composés :
Deux types spéciaux :
mixed est un pseudo-type, qui indique que le paramètre peut indifféremment prendre plusieurs types.
- type numérique : 0.00
- type chaine : "" équivalent à NULL
- type booléen : false équivalent à 0
- type tableau : NULL avec une taille à 0
gettype permet de retrouver le type des différentes variables. Et quand une variable n'existe pas, gettype renvoie NULL, ce qui en fait une fonction plus pratique que isset.
$Truc = "66";
echo gettype($Truc); // string
$Truc = 66;
echo gettype($Truc); // integer
$Truc = FALSE;
echo gettype($Truc); // boolean
unset ($Truc); // (Destruction
de la variable)
echo gettype($Truc); // NULL
Voir également le chapitre sur les fonctions.
Une constante (variable invariable...) se définit avec la fonction define. L'usage veut que les constantes soit écrites en MAJUSCULES, mais ce n'est pas obligatoire. Attention : Elles sont toutefois case-sensitives !
define("NOMBREPI",
3.15159);
echo NOMBREPI;
On peut très bien imaginer une variable et une constante de même nom :
define("NOMBREPI",
3.15159);
$NOMBREPI = "Chaise";
echo NOMBREPI; //3.14159
echo $NOMBREPI; // Chaise
Comme les constantes sont sensibles à la casse, on serait sensé pouvoir écrire :
define("Animal",
"Chat");
define("animal",
"Souris");
echo Animal; // Chat
echo animal; //
Non pas souris, mais animal !!!
Il y a comme qui dirait un petit bug..
2 méthodes sont possibles :
$mon_double= 2.945678;
echo $mon_double;
echo "<BR>";
echo (int)$mon_double;
Renverra 2 : C'est la partie entière de 2.945678.
Les conversions autorisées sont:
Exemple :
$mon_double= 2.945678;
echo $mon_double; // 2.945678
echo (bool)$mon_double; // 1
echo (int)$mon_double; // 2
echo (real)$mon_double; // 2.945678
echo (string)$mon_double; // 2.945678
echo (array)$mon_double; // Array
echo (object)$mon_double; // Object
Le settype, contrairement au cast, change réellement le type de la variable.
Exemple :
$mon_double = 2.345678;
settype ($mon_double,
"integer");
echo $mon_double; //2
isset permet de voir si une variable existe ou pas, mais gettype est nettement plus souple, puissant et pratique
unset détruit complètement la variable
echo isset($Truc);
// ne renvoie rien, même pas 0(La variable n'existe pas
encore)
$Truc = "yes";
echo isset($Truc); // renvoie 1 (La variable existe)
$Truc = "";
echo isset($Truc); // renvoie 1 (elle existe toujours, mais
elle est vide)
unset($Truc);
echo isset($Truc); // ne renvoie rien, même pas 0 (elle
n'existe plus)
Le mot clé define permet ça
define
("CapitaleFrance", "Paris");
echo CapitaleFrance; // Paris
CapitaleFrance = "Madrid" // Renvoie une erreur fatale, logique !
echo defined
("CapitaleFrance"); // 0
define ("CapitaleFrance", "Paris");
echo defined ("CapitaleFrance"); // 1
echo PHP_VERSION;
// 4.1.2 - Version de PHP
echo PHP_OS; // Linux
- OS de l'hébergeur
echo __FILE__; // /home/websites/site11/web/filetest.php
- Emplacement du fichier PHP actuel
echo $REQUEST_URI; // /phpmysql/index.php
- Ressemble à __FILE__
echo __LINE__; //14
- N° de ligne dans laquelle on est dans le fichier PHP actuel
D'autres constantes prédéfinies ici
Attention : j'ai testé : on dirait bien qu'on ne peut pas accéder aux constantes prédéfinies dans nos propres fonctions (il faut les passer en paramètre)
Les constantes mathématiques commencent par M :Elles sont listées ici avec les fonctions mathématiques
$NombreDecimal=123;
echo decbin($NombreDecimal); //1111011
$NombreBinaire = "1101";
echo bindec($NombreBinaire);//13
number_format permet d'afficher les nombres avec des séparations entre les milliers et les centaines, ainsi que le nombre de décimales après la virgules :
$MonNombre=2345678.6623;
echo number_format($MonNombre, 2);
Affichera :
2,345,678.66
Maintenant, il est possible de ne pas laisser la notation américaine par défaut : Pour définir l'apostrophe comme séparateur de milliers et la virgule comme séparateur décimal, avec 1 décimale après la virgule, on écrirait ceci :
$MonNombre=2345678.6623;
echo number_format($MonNombre, 1 , ","
, "'");
L'affichage donne :
2'345'678,7
Constatez l'arrondissement à ,7.
---