Unlike other languages, PHP is not a strictly typed language. Basically, this means that developers don't have to explicitly set the type of a variable (number, string, boolean) before using it. Instead, the PHP interpreter automatically detects the type of the variable based on the information stored in the variable.
While this feature makes programming in PHP very easy, it also has an important flaw: when you need to test the type of a variable, languages that handle typing more loosely can be a bit confusing. Fortunately, the developers of PHP noticed this and included a toolkit of functions specifically for testing variables and finding out which specific character category they belong to - that is, whether they contain characters. String, integer, object or boolean.
The more useful functions in this category are listed below, with descriptions and application examples provided.
This function is used to check whether the variable is empty (no value or zero value). Use this function to check user input, for example, form variables. Ensure they contain valid data.
<?php // returns false $var = "hello"; echo empty($var) ? "true" : "false"; // returns true $var = 0000; echo empty ($var) ? "true" : "false"; ?>
This function returns the type of the variable. For example, "String", "Integer", "Boolean", "Float", etc. This function is generally used to verify that the variable is of the type you expect before inserting it into a strictly typed database field.
<?php // returns string $var = "hello"; echo gettype($var); //returns double $var = 1000.56; echo gettype($var); ?>
This function tests a variable to see if it contains a boolean value (true/false). Use this function to check if a variable is a Boolean variable.
<?php // returns true $var = false; echo is_bool($var) ? "true" : "false"; ?>
This function tests whether a variable is a string variable. Use this function to check whether a variable contains string data.
<?php // returns true $var = "exception"; echo is_string($var) ? "true" : "false"; // returns true $var = "88408"; echo is_string($var) ? "true" : "false"; ?>
This function tests a variable to see if it contains a number or a string of numbers (a string consists of a symbol, number, and decimal point). Use this function to verify that a variable contains a number before using it in calculations.
<?php // returns true $var = "+99.766"; echo is_numeric($var) ? "true" : "false"; // returns false $var = "b00"; echo is_numeric($var) ? "true" : "false"; ?>
This function tests a variable to see if it is a PHP related or numerically indexed array. Use this function to check whether a variable is an array before processing it in a loop.
<?php // returns true $var = array("tiger", "lion", "zebra"); echo is_array($var) ? "true" : "false"; // returns false $var = "zebra"; echo is_array($var) ? "true" : "false"; ?>
This function tests a variable to see if it is NULL. Use this function to check whether a variable is NULL when evaluating data returned by a SQL query.
<?php // returns false $var = "aa"; echo is_null($var) ? "true" : "false"; // returns true $var = null; echo is_null($var) ? "true" : "false"; ?>
This function tests a variable to see if it is a PHP object. This function is generally used to test whether a variable is a PHP object before calling a method or accessing a property.
<?php // returns false $var = "exception"; echo is_object($var) ? "true" : "false"; // returns true $var = new Exception; echo is_object($var) ? "true" : "false"; ?>
This function tests a variable to see if it has been defined. This function is typically used to test whether a variable is defined when evaluating the results of a form submission.
<?php // returns true $var = "yes"; echo isset($var) ? "true" : "false"; // returns false echo isset($test) ? "true" : "false"; ?>
This function prints the contents of a variable. Use this function to "spy" on a variable, especially when debugging a script.
<?php $var = array("one", "two", array("red", "green"), new Exception, 467); print_r($var); ?>