Informatique


Tester, renvoyer et modifier le type d'une variable

Tester le type d'une variable

Les méthodes suivantes reourne TRUE si la variable est de type recherché et FALSE dans le cas contraire.

  • is_integer($var) ou is_int($var)
  • is_double($var)
  • is_string($var)
  • is_bool($var)
  • is_array($var)
  • is_object($var)
  • is_null($var)

Démo
<?php
	$val=5.5;
	$typev=is_integer($val);
	var_dump($typev);
	$typev=is_double($val);
	var_dump($typev);
	$typev=is_string($val);
	var_dump($typev);
	$typev=is_bool($val);
	var_dump($typev);
	$typev=is_array($val);
	var_dump($typev);
	$typev=is_object($val);
	var_dump($typev);
	$typev=is_null($val);
	var_dump($typev);
?>

Renvoyer le type d'une variable

La méthode gettype($var) renvoie une chaîne de caractères correspondant au type de la variable passée en paramètre.

Démo
<?php
	$val=5;
	if(is_string($val)){
		echo("La variable est bien de type".gettype($val));
	}
	else{
		echo("La variable n'est pas de type string, elle est de type ".gettype($val));
	}
?>

Convertir le type une variable

Le PHP est un langage "très peu typé", le type d'une variable est modifié automatiquement en fonction de la valeur qui lui est affectée. Cette souplesse apparente ne doit pas vous dispenser de forcer le type de vos variables.

Par exemple, les données provenant d'un formulaire sont toujours de type string, il y a lieu d'adapter le type de chaque donnée en fonction de l'utilisation que l'on veut en faire (par ex.calcul arithmétique) .

Il y a deux possibilités:

  • précéder la variable du nouveau type choisi: $mavar = (type_désiré)$mavar;
  • utiliser settype: settype($mavar,"type_désiré");

avec pour type_désiré le valeurs: integer (ou int), double, string, boolean (ou bool), array et null.

Attention, on ne peut pas modifier le type d'une variable en object

Démo
<?php
	echo($val."  la variable est de type ".gettype($val)."<br>");
	settype($val,"integer");
	echo($val."  la variable est de type ".gettype($val)."<br>");
	settype($val,"boolean");
	echo($val." la variable est de type ".gettype($val)."<br>");
	settype($val,"string");
	echo($val." la variable est de type ".gettype($val)."<br>");
	settype($val,"array");
	echo($val." la variable est de type ".gettype($val)."<br>");
	settype($val,"null");
	echo($val." la variable est de type ".gettype($val)."<br>");
?>

Modifier le type d'une variable n'est pas anodin, comme le démontre l'exemple précédent une modification de type entraîne le plus souvent une modification définitive de son contenu.

La modification du contenu d'une variable suite à un changement de type est définitive.


Contrôler l'état d'une variable

isset($var)

isset() détermine si une variable est définie et est différente de NULL.

Cette méthode renvoie TRUE si la variable contient une valeur et FALSE si celle-ci ne contient rien ou Null.

empty($var)

Cette méthode évalue le contenu booléen d'une variable et renvoie TRUE si la variable ne contient rien, ou contient 0, 0.0,"0" ou la valeur NULL.
Elle renvoie FALSE si la variable contient une valeur quelconque.

Démo
<?php
$val="15";
var_dump(isset($val));	//true
var_dump(empty($val));	//false

$val=0;
var_dump(isset($val));	//true
var_dump(empty($val));	//true
?>