PHP中的变量函数 Variable Functions
时间:2010-05-13 来源:yuling520169
debug_zval_dump — Dumps a string representation of an internal zend value to output
doubleval — 获取参数的浮点值部分,是floatval()函数的别名
empty — 检测变量的值是否为空
floatval — 获取参数的浮点值部分
get_defined_vars — 返回所有已定义的变量
get_resource_type — 获取资源的类型
gettype — 获取变量的类型
import_request_variables — 将GET/POST/Cookie变量导入到全局作用域中
intval — 获取参数的整数部分
is_array — 检测对象是否是一个数组
is_bool — 检测对象是否是布尔类型
is_callable — 检测参数是否为合法的可调用结构
is_double — 检测对象是否浮点数,是is_float()的别名
is_float — 检测对象是否浮点数
is_int — 检测对象是否是整数
is_integer — 检测对象是否是整数,是is_int() 的别名
is_long — 检测对象是否是整数,是is_int() 的别名
is_null — 检测对象是否是NULL
is_numeric — 检测一个对象是否是数字或者数字形式的字符串
is_object — 检测对象是否是一个对象类型
is_real — 检测对象是否浮点数,是is_float() 的别名
is_resource — 检测对象是否是资源类型
is_scalar — 检测对象是否是数字或者字符串
is_string — 检测对象是否是字符串
isset — 检测变量是否已设置
print_r — 将数组,对象格式化成易于理解的格式信息
serialize — 对变量序列化
settype — 设置(改变)变量的类型
strval — 获取参数的字符串值
unserialize — 对变量反序列化
unset — 释放一个变量
var_dump — 打印变量的相关信息
var_export — 输出或返回一个变量的字符串表示
is_string ()函数的作用是检测对象是否是字符串。
is_int()函数的作用是检测对象是否是整数。
is_integer()函数和 is_long()函数的作用和is_int()函数相同,是is_int()函数的别名。
is_float()函数的作用是检测对象是否浮点数,
is_double()函数和is_real()函数的作用和is_float()函数相同,是is_float()函数的别名。
is_array()函数的作用是检测对象是否是一个数组。
is_bool()函数的作用是检测对象是否是布尔类型。
is_null()函数的作用是检测对象是否是NULL。
is_object()函数的作用是检测对象是否是一个对象类型。
is_resource()函数的作用是检测对象是否是资源类型(资源类型是一种特殊类型变量,保存了到外部资源的一个引用)。
<?php
echo is_string("string"); // 显示 1
echo is_int(100); // 显示 1
echo is_float(100); // 无显示
echo is_float(100.34); // 显示 1
echo is_array(array("apple", "orange")); // 显示 1
echo is_bool(true); // 显示 1
echo is_null(NULL); // 显示 1
$obj = (object) 'ciao';
echo is_object($obj); // 显示 1
$dir = opendir("/");
echo is_resource($dir); // 显示 1
?>
is_numeric()函数的作用是检测一个对象是否是数字或者数字形式的字符串。
<?php
echo is_numeric(3.23); // 显示 1
echo is_numeric("3.23"); // 显示 1
echo is_numeric("3.23e3"); // 显示 1
?>
is_scalar()函数的作用是检测对象是否是数字或者字符串。
<?php
echo is_scalar(12.3); // 显示 1
echo is_scalar("string"); // 显示 1
echo is_scalar(array("one")); // 不显示
?>
is_callable()的作用是检测参数是否为合法的可调用结构,使用方法不明。
empty()函数的大作用是检测变量的值是否为空。isset()函数的作用是检测变量是否已设置。两个函数的具体使用区别可参照此表,此表摘自手册。唯一要注意的是字符串“0”被empty()函数认为是空的。
表达式 | gettype() | empty() | is_null() | isset() | boolean:if($x) |
---|---|---|---|---|---|
$x = ""; | string | TRUE | FALSE | TRUE | FALSE |
$x = NULL | NULL | TRUE | TRUE | FALSE | FALSE |
var $x; | NULL | TRUE | TRUE | FALSE | FALSE |
$x is undefined | NULL | TRUE | TRUE | FALSE | FALSE |
$x = array(); | array | TRUE | FALSE | TRUE | FALSE |
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE |
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE |
$x = 1; | integer | FALSE | FALSE | TRUE | TRUE |
$x = 42; | integer | FALSE | FALSE | TRUE | TRUE |
$x = 0; | integer | TRUE | FALSE | TRUE | FALSE |
$x = -1; | integer | FALSE | FALSE | TRUE | TRUE |
$x = "1"; | string | FALSE | FALSE | TRUE | TRUE |
$x = "0"; | string | TRUE | FALSE | TRUE | FALSE |
$x = "-1"; | string | FALSE | FALSE | TRUE | TRUE |
$x = "php"; | string | FALSE | FALSE | TRUE | TRUE |
$x = "true"; | string | FALSE | FALSE | TRUE | TRUE |
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE |
intval ()函数的作用是获取参数的整数部分,第二个参数表示该数字所基于的进制,默认为10进制,返回值将自动转换成10进制的形式。
floatval()函数的作用是获取参数的浮点值部分。
doubleval ()函数的作用和使用方法和floatval()函数完全相同,是floatval()函数的别名。
strval()函数的作用是获取参数的字符串值。
<?php
echo intval("1F",16); // 显示 1
echo intval("112SDF"); // 显示 112
echo floatval ('122.34343The'); // 显示 122.34343
echo strval("THE123"); // 显示 THE123
?>
gettype ()函数的作用是获取变量的类型,可能返回的类型有:boolean、integer、double(由于历史原因,如果是浮点数则返回“double”,而不是“float”)、string、array、object、resource、NULL、unknown type。settype()函数的作用是设置(改变)变量的类型,可设置的类型为:boolean、integer、float、string、 array、object、null。settype()函数的第一个参数必须为变量。
<?php
echo gettype(3.7); // 显示 double
$var = array("time");
settype($var,"object");
print_r($var); // 显示 stdClass Object ( [0] => time )
$foo = "5bar";
settype($foo, "integer");
echo $foo; // 显示 5
?>
get_resource_type()函数的作用是获取资源的类型。
<?php
$dir = opendir("/");
echo get_resource_type($dir); // 显示 stream
?>
get_defined_vars()函数的作用是返回所有已定义的变量,返回值为一个数组,包含预定义的和自定义的所有变量。
<?php
print_r(get_defined_vars()); // 显示一大堆
?>
print_r()函数的作用是将数组,对象格式化成易于理解的格式信息
print_r()函数和print()函数不同的一点是,print_r()函数的有第二个参数,如果被设置为true,结果将会返回而不是输出。
<pre>
<?php
$result = print_r(array("a","b"),true); // 显示一大堆
echo $result;
/* 显示
Array
(
[0] => a
[1] => b
)
*/
?>
</pre>
var_dump()函数的作用是打印变量的相关信息。var_dump()函数可以用“,”分隔显示多个变量
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);
/* 显示
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
*/
$b = 3.1;
$c = TRUE;
var_dump($b,$c);
/* 显示
float(3.1)
bool(true)
*/
?>
var_export()函数的作用是输出或返回一个变量的字符串表示,var_export()函数和var_dump()函数类似,区别是其返回的表示是合法的 PHP 代码,var_export()函数设置为true时,将返回而不是显示内容。
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export ($a);
/* 显示
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
*/
$b = 3.1;
$v = var_export($b, TRUE);
echo $v;
/* 显示
3.1
*/
?>
unset ()函数的作用是释放一个变量,unset()函数没有任何返回值,如果在函数中unset()一个全局变量,则不会影响全局变量在全局范围内的使用;如果unset()一个静态变量,也不会让静态变量在全局范围内受影响;如果需要在函数中unset()一个全局变量,可使用$ GLOBALS数组来实现。
<?php
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo; // 显示 bar
function foo() {
static $a;
$a++;
echo "$a\n";
unset($a);
}
foo(); // 显示 1
foo(); // 显示 2
foo(); // 显示 3
function foo() {
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
echo $bar; // 什么也不显示
?>
serialize ()函数的作用是对变量序列化,目的是使其能被存储。unserialize()函数的作用和serialize()函数正好相反,可以将一个经serialize()函数序列化以后的值进行反序列化。序列化可以作用于资源类型(resource)之外的任何类型,在对对象(object)进行serialize()时,会自动调用__sleep()成员函数,同样在unserialize()时,会自动调用 __wakeup()成员函数。unserialize()函数有第二个参数,具体使用方法略。
<?php
$arr = array("a", "b");
$ser = serialize($arr);
echo $ser; // 显示 a:2:{i:0;s:1:"a";i:1;s:1:"b";}
$str = 'a:2:{i:0;s:1:"a";i:1;s:1:"b";}';
$arr2 = unserialize($str);
print_r($arr2);
/* 显示
(
[0] => a
[1] => b
)
*/
?>
import_request_variables ()函数的作用是将GET/POST/Cookie变量导入到全局作用域中,如果你禁止了 register_globals,但又想用到一些全局变量,那么此函数就很有用。第一个参数表示需要导入的类型,字母‘G’、‘P’和‘C’分别表示 GET、POST 和 Cookie,注意在使用时,后一个同名变量会覆盖前一个。第二个参数可以给这些变量设置一个共用的变量名前缀。
debug_zval_dump()函数 待加