# 变量

* [boolval - 获取变量的布尔值](#boolval)
* [debug_zval_dump - 打印变量的相关信息和被引用的次数](#debugzvaldump)
* [doubleval - 获取变量的浮点值](#doubleval)
* [empty - 检查一个变量是否为空](#empty)
* [floatval - 获取变量的浮点值](#floatval)
* [get_defined_vars - 返回由所有已定义变量所组成的数组](#getdefinedvars)
* [get_resource_type - 返回资源类型](#getresourcetype)
* [gettype - 获取变量的类型](#gettype)
* [intval - 获取变量的整数值](#intval)
* [is_array - 检测变量是否是数组](#isarray)
* [is_bool - 检测变量是否是布尔型](#isbool)
* [is_callable - 检测参数是否为合法的可调用结构](#iscallable)
* [is_countable - 检测参数是否为可计数类型](#iscountable)
* [is_double - 检测变量是否是浮点型](#isdouble)
* [is_float - 检测变量是否是浮点型](#isfloat)
* [is_int - 检测变量是否是整数](#isint)
* [is_integer - 检测变量是否是整数](#isinteger)
* [is_iterable - 检测变量是否是可迭代类型](#isiterable)
* [is_long - 检测变量是否是整数](#islong)
* [is_null - 检测变量是否为 NULL](#isnull)
* [is_numeric - 检测变量是否为数字或数字字符串](#isnumeric)
* [is_object - 检测变量是否是一个对象](#isobject)
* [is_resource - 检测变量是否为资源类型](#isresource)
* [is_scalar - 检测变量是否是一个标量](#isscalar)
* [is_string - 检测变量是否是字符串](#isstring)
* [isset - 检测变量是否已设置并且非 NULL](#isset)
* [print_r - 以易于理解的格式打印变量](#printr)
* [serialize - 产生一个可存储的值的表示](#serialize)
* [settype - 设置变量的类型](#settype)
* [strval - 获取变量的字符串值](#strval)
* [unserialize - 从已存储的表示中创建 PHP 的值](#unserialize)
* [unset - 释放指定的变量](#unset)
* [var_dump - 打印变量的相关信息](#vardump)
* [var_export - 输出或返回一个变量的字符串表示](#varexport)

## boolval

```php
<?php

var_dump(boolval(-10));            // bool(true)
var_dump(boolval(0));              // bool(false)
var_dump(boolval(0.0));            // bool(false)
var_dump(boolval(0.0001));         // bool(true)
var_dump(boolval(1));              // bool(true)
var_dump(boolval(''));             // bool(false)
var_dump(boolval('0'));            // bool(false)
var_dump(boolval('0.00'));         // bool(true)
var_dump(boolval('1'));            // bool(true)
var_dump(boolval('foo'));          // bool(true)
var_dump(boolval('false'));        // bool(true)
var_dump(boolval(false));          // bool(false)
var_dump(boolval(2.3e5));          // bool(true)
var_dump(boolval([]));             // bool(false)
var_dump(boolval([2, 4, 5]));      // bool(true)
var_dump(boolval(new stdClass())); // bool(true)

```

## debug_zval_dump

```php
<?php

$foo = 'foo';
debug_zval_dump($foo);       // string(3) "foo" refcount(1)

$foo = 'foo';
$bar = &$foo;
debug_zval_dump($foo, $bar); // string(3) "foo" refcount(1) string(3) "foo" refcount(1)

```

## doubleval

```php
<?php

var_dump(doubleval(-0.0001));        // float(-0.0001)
var_dump(doubleval('abc122.34343')); // float(0)
var_dump(doubleval('122.34343abc')); // float(122.34343)

```

## empty

```php
<?php

var_dump(empty(-10));            // bool(false)
var_dump(empty(0));              // bool(true)
var_dump(empty(0.0));            // bool(true)
var_dump(empty(0.0001));         // bool(false)
var_dump(empty(''));             // bool(true)
var_dump(empty('false'));        // bool(false)
var_dump(empty('0'));            // bool(true)
var_dump(empty('1'));            // bool(false)
var_dump(empty([]));             // bool(true)
var_dump(empty([0, 1, 2]));      // bool(false)
var_dump(empty(new stdClass())); // bool(false)

```

## floatval

```php
<?php

var_dump(floatval(-0.0001));        // float(-0.0001)
var_dump(floatval('abc122.34343')); // float(0)
var_dump(floatval('122.34343abc')); // float(122.34343)

```

## get_defined_vars

```php
<?php

var_dump(get_defined_vars());

```

## get_resource_type

```php
<?php

var_dump(get_resource_type(tmpfile())); // string(6) "stream"

```

## gettype

```php
<?php

var_dump(gettype(false));          // string(7) "boolean"
var_dump(gettype(0));              // string(7) "integer"
var_dump(gettype(-0.0001));        // string(6) "double"
var_dump(gettype('foo'));          // string(6) "string"
var_dump(gettype([]));             // string(5) "array"
var_dump(gettype(new stdClass())); // string(6) "object"
var_dump(gettype(tmpfile()));      // string(8) "resource"
var_dump(gettype(null));           // string(4) "NULL"

```

## intval

```php
<?php

var_dump(intval(-42));       // int(-42)
var_dump(intval(42));        // int(42)
var_dump(intval(0.0001));    // int(0)
var_dump(intval(4.2));       // int(4)
var_dump(intval('+42'));     // int(42)
var_dump(intval('-42'));     // int(-42)
var_dump(intval(1e7));       // int(10000000)
var_dump(intval('1e7'));     // int(10000000)
var_dump(intval(0b11));      // int(3)
var_dump(intval('0b11'));    // int(0)
var_dump(intval(042));       // int(34)
var_dump(intval('042'));     // int(42)
var_dump(intval(0x99));      // int(153)
var_dump(intval('0x99'));    // int(0)
var_dump(intval([]));        // int(0)
var_dump(intval([0, 1, 2])); // int(1)
var_dump(intval(42, 8));     // int(42)
var_dump(intval('42', 8));   // int(34)

```

## is_array

```php
<?php

var_dump(is_array(0));                                // bool(false)
var_dump(is_array([0, 1, 2]));                        // bool(true)
var_dump(is_array(['foo' => 'cat', 'bar' => 'dog'])); // bool(true)

```

## is_bool

```php
<?php

var_dump(is_bool(0));     // bool(false)
var_dump(is_bool(true));  // bool(true)
var_dump(is_bool(false)); // bool(true)

```

## is_callable

```php
<?php

/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */
function foo()
{
    //
}

/**
 * Just a test function.
 *
 * @param  void
 * @return void
 */
$foo = function () {
    //
};

class Foo
{
    /**
     * Just a test method.
     *
     * @param  void
     * @return void
     */
    public function method()
    {
        //
    }
}

class Bar
{
    /**
     * Just a test method.
     *
     * @param  void
     * @return void
     */
    public static function method()
    {
        //
    }
}

class Baz extends Foo
{
    /**
     * Override the parent method.
     *
     * @param  void
     * @return void
     */
    public function method()
    {
        //
    }
}

class Qux extends Bar
{
    /**
     * Override the parent method.
     *
     * @param  void
     * @return void
     */
    public static function method()
    {
        //
    }
}

class Quux
{
    /**
     * This method is called when tries to call an object as a function.
     *
     * @param  void
     * @return void
     */
    public function __invoke()
    {
        //
    }
}

var_dump(is_callable('print'));                         // bool(false)
var_dump(is_callable('foo'));                           // bool(true)
var_dump(is_callable($foo));                            // bool(true)
var_dump(is_callable([new Foo(), 'method']));           // bool(true)
var_dump(is_callable(['Bar', 'method']));               // bool(true)
var_dump(is_callable('Bar::method'));                   // bool(true)
var_dump(is_callable([new Baz(), 'parent::method']));   // bool(true)
var_dump(is_callable('Qux', 'parent::method'));         // bool(true)
var_dump(is_callable(new Quux()));                      // bool(true)
var_dump(is_callable('foo', false, $callable_name));    // bool(true)
var_dump(is_callable('print', true, $callable_name));   // bool(true)

```

## is_countable

```php
<?php

var_dump(is_countable(0));                   // bool(false)
var_dump(is_countable([]));                  // bool(true)
var_dump(is_countable(new stdClass()));      // bool(false)
var_dump(is_countable(new ArrayIterator())); // bool(true)

```

## is_double

```php
<?php

var_dump(is_double(0));     // bool(false)
var_dump(is_double(27.25)); // bool(true)
var_dump(is_double(1e7));   // bool(true)

```

## is_float

```php
<?php

var_dump(is_float(0));     // bool(false)
var_dump(is_float(27.25)); // bool(true)
var_dump(is_float(1e7));   // bool(true)

```

## is_int

```php
<?php

var_dump(is_int(23));   // bool(true)
var_dump(is_int('23')); // bool(false)
var_dump(is_int(23.5)); // bool(false)

```

## is_integer

```php
<?php

var_dump(is_integer(23));   // bool(true)
var_dump(is_integer('23')); // bool(false)
var_dump(is_integer(23.5)); // bool(false)

```

## is_iterable

```php
<?php

var_dump(is_iterable(0));                   // bool(false)
var_dump(is_iterable([0, 1, 2]));           // bool(true)
var_dump(is_iterable(new stdClass()));      // bool(false)
var_dump(is_iterable(new ArrayIterator())); // bool(true)

```

## is_long

```php
<?php

var_dump(is_long(23));   // bool(true)
var_dump(is_long('23')); // bool(false)
var_dump(is_long(23.5)); // bool(false)

```

## is_null

```php
<?php

var_dump(is_null(null)); // bool(true)
var_dump(is_null(''));   // bool(false)
var_dump(is_null(0));    // bool(false)

```

## is_numeric

```php
<?php

var_dump(is_numeric(3));      // bool(true)
var_dump(is_numeric('3'));    // bool(true)
var_dump(is_numeric('1.2'));  // bool(true)
var_dump(is_numeric('1.2a')); // bool(false)

```

## is_object

```php
<?php

var_dump(is_object(null));           // bool(false)
var_dump(is_object([]));             // bool(false)
var_dump(is_object(new stdClass())); // bool(true)

```

## is_resource

```php
<?php

var_dump(is_resource(null));           // bool(false)
var_dump(is_resource(tmpfile()));      // bool(true)
var_dump(is_resource(new stdClass())); // bool(false)

```

## is_scalar

```php
<?php

var_dump(is_scalar(0));              // bool(true)
var_dump(is_scalar(0.1));            // bool(true)
var_dump(is_scalar('0'));            // bool(true)
var_dump(is_scalar(false));          // bool(true)
var_dump(is_scalar([0, 1, 2]));      // bool(false)
var_dump(is_scalar(new stdClass())); // bool(false)
var_dump(is_scalar(tmpfile()));      // bool(false)
var_dump(is_scalar(null));           // bool(false)

```

## is_string

```php
<?php

var_dump(is_string(0));   // bool(false)
var_dump(is_string(''));  // bool(true)
var_dump(is_string('0')); // bool(true)

```

## isset

```php
<?php

var_dump(isset($foo));       // bool(false)

$foo = null;
var_dump(isset($foo));       // bool(false)

$foo = '';
var_dump(isset($foo));       // bool(true)

$foo = 0;
var_dump(isset($foo));       // bool(true)

$foo = 0;
$bar = null;
var_dump(isset($foo, $bar)); // bool(false)

$foo = '';
$bar = 0;
var_dump(isset($foo, $bar)); // bool(true)

$foo = null;
$bar = 0;
var_dump(isset($foo, $bar)); // bool(false)

```

## print_r

```php
<?php

print_r([0, 1, 2]); // Array ( [0] => 0 [1] => 1 [2] => 2 )

$foo = print_r([0, 1, 2], true);
var_dump($foo);     // string(49) "Array ( [0] => 0 [1] => 1 [2] => 2 ) "

```

## serialize

```php
<?php

var_dump(serialize(0));              // string(4) "i:0;"
var_dump(serialize([0, 1, 2]));      // string(30) "a:3:{i:0;i:0;i:1;i:1;i:2;i:2;}"
var_dump(serialize(new stdClass())); // string(19) "O:8:"stdClass":0:{}"

```

## settype

```php
<?php

$foo = 0;
var_dump(settype($foo, 'string'));  // bool(true)
var_dump($foo);                     // string(1) "0"

$foo = true;
var_dump(settype($foo, 'string'));  // bool(true)
var_dump($foo);                     // string(1) "1"

$foo = '122.34343abc';
var_dump(settype($foo, 'integer')); // bool(true)
var_dump($foo);                     // int(122)

$foo = 'abc122.34343';
var_dump(settype($foo, 'integer')); // bool(true)
var_dump($foo);                     // int(0)

$foo = 'true';
var_dump(settype($foo, 'bool'));    // bool(true)
var_dump($foo);                     // bool(true)

$foo = 'false';
var_dump(settype($foo, 'bool'));    // bool(true)
var_dump($foo);                     // bool(true)

```

## strval

```php
<?php

var_dump(strval(-10));    // string(3) "-10"
var_dump(strval(0));      // string(1) "0"
var_dump(strval(0.0001)); // string(6) "0.0001"
var_dump(strval(true));   // string(1) "1"
var_dump(strval(false));  // string(0) ""
var_dump(strval(1e7));    // string(8) "10000000"

```

## unserialize

```php
<?php

var_dump(unserialize('i:0;'));                           // int(0)
var_dump(unserialize('a:3:{i:0;i:0;i:1;i:1;i:2;i:2;}')); // array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2) }
var_dump(unserialize('O:8:"stdClass":0:{}'));            // object(stdClass)#1 (0) { }

```

## unset

```php
<?php

$foo = 0;
unset($foo);
var_dump($foo);      // NULL

$foo = [0, 1, 2];
unset($foo[0]);
var_dump($foo);      // array(2) { [1]=> int(1) [2]=> int(2) }

$foo = new stdClass();
unset($foo);
var_dump($foo);      // NULL

$foo = 0;
$bar = [0, 1, 2];
unset($foo, $bar);
var_dump($foo);      // NULL
var_dump($bar);      // NULL

```

## var_dump

```php
<?php

var_dump(0);                            // int(0)
var_dump([0, 1, 2]);                    // array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2) }
var_dump(0, [0, 1, 2], new stdClass()); // int(0) array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2) } object(stdClass)#1 (0) { }

```

## var_export

```php
<?php

var_export([0, 1, 2]); // array ( 0 => 0, 1 => 1, 2 => 2, )

$foo = var_export([0, 1, 2], true);
var_dump($foo);        // string(39) "array ( 0 => 0, 1 => 1, 2 => 2, )"

```

