PHP: gettype - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

import_request_variables get_resource_type

Last updated: Fri, 26 Jan 2007

view this page in

# gettype

(PHP 3, PHP 4, PHP 5)

gettype -- Get the type of a variable

## Описание

string gettype ( mixed var )

Returns the type of the PHP variable `var`.

Внимание
Never use gettype() to test for a certain type, since the returned string may be subject to change in a future version. In addition, it is slow too, as it involves string comparison. Instead, use the `is_*` functions.

## Возвращаемые значения

Possibles values for the returned string are:

- "boolean" (since PHP 4)

- "integer"

- "double" (for historical reasons "double" is returned in case of a float, and not simply "float")

- "string"

- "array"

- "object"

- "resource" (since PHP 4)

- "NULL" (since PHP 4)

- "user function" (PHP 3 only, deprecated)

- "unknown type"

For PHP 4, you should use function_exists() and method_exists() to replace the prior usage of gettype() on a function.

## Смотрите также

settype()
is_array()
is_bool()
is_float()
is_int()
is_null()
is_numeric()
is_object()
is_resource()
is_scalar()
is_string()

add a note User Contributed Notes
gettype
sneskid at hotmail dot com
05-Mar-2007 01:56
`I wrote my own gettype function by just using the default is_? functions, but it took twice as long as gettype... So I decided to use gettype with a twist.
Taking the warnings about gettype to heart, and depending on your custom needs, it's worthwhile to dynamically test the gettype result with a known variable, and link the result to a predefined result. Like so:
<?php
/*
dynamically create an array by using known variable types
link with a predefined value
*/
$R=array();
$R[gettype(.0)]='number';
$R[gettype(0)]='number';
$R[gettype(true)]='boolean';
$R[gettype('')]='string';
$R[gettype(null)]='null';
$R[gettype(array())]='array';
$R[gettype(new stdClass())]='object';
// what is
function wis_($v){
global $R;
return $R[gettype($v)];
}
echo wis_('hello') . '<br/>'; // "string"
echo wis_(24) . '<br/>'; // "number"
echo wis_(0.24) . '<br/>'; // "number"
echo wis_(null) . '<br/>'; // "null"
echo wis_($R) . '<br/>'; // "array"
?>
You won't need to worry about changes in gettype's return strings in future versions.
If the result evaluates to false then you know the variable tested is some "other" type.
I also find these useful
<?php
function is_num($v){return (is_int($v) || is_double($v));}
function is_box($v){return (is_array($v)||is_object($v));}
echo is_num(null) . '<br/>'; // false
echo is_num(false) . '<br/>'; // false
echo is_num('123') . '<br/>'; // false
echo is_num(123) . '<br/>'; // true
echo is_num(123.0) . '<br/>'; // true
?>`
gilthansNOSPAM at gmail dot com
11-Sep-2005 01:18
`NaN and #IND will return double or float on gettype, while some inexistent values, like division by zero, will return as a boolean FALSE. 0 by the 0th potency returns 1, even though it is mathematically indetermined.
<?php
$number = 5/0;
$number2 = sqrt(-3);
$number3 = pow(0, 0);
$number4 = 0/0;
echo $number."<br />";
echo $number2."<br />";
echo $number3."<br />";
echo $number4."<br />";
echo "<br />";
echo gettype($number)."<br />";
echo gettype($number2)."<br />";
echo gettype($number3)."<br />";
echo gettype($number4);
?>
This will return:
-1.#IND
1
boolean
double
integer
boolean
0
1
1
0
PHP Warning: Division by zero in C\test.php on line 2 PHP Warning: Division by zero in C:\test.php on line 5`
matt at appstate
16-Dec-2004 11:10
`Here is something that had me stumped with regards to gettype and is_object.
Gettype will report an incomplete object as such, whereas is_object will return FALSE.
if (!is_object($incomplete_obj)) {
echo 'This variable is not an object, it is a/an ' . gettype($incomplete_obj);
}
Will print:
This variable is not an object, it is a/an object`
jose at vocis dot com
14-Sep-2000 09:22
`Also returns "NULL" for variables assigned the return of a function that returned no value via "return;".
<code>
function weird(){
return;
}
$a=weird();
</code>
isset($a) <> 1
empty($a) <> 1
gettype($a) == NULL
-Jose Batista`
ojones at dotclick dot com
31-Aug-2000 10:19
`After calling OCIResult to retrieve a NULL result from an Oracle result-set, gettype returns the string 'NULL'.`
add a note
import_request_variables get_resource_type

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 09:32:46 2007 PST