doubleval — floatval 的别名
empty — 检查一个变量是否为空
判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.
以下的东西被认为是空的:
"” (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
“0” (作为字符串的0)
NULL
FALSE
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)
所以: empty() 本质上与 !isset($var) || $var == false 等价。
floatval — 获取变量的浮点值
var 可以是任何标量类型。你不能将 floatval() 用于数组或对象。
get_defined_vars — 返回由所有已定义变量所组成的数组
此函数返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量。
$b = array(1,1,2,3,5,8);
$arr = get_defined_vars();
// 打印 $b
print_r($arr["b"]);
// 打印 PHP 解释程序的路径(如果 PHP 作为 CGI 使用的话)
// 例如:/usr/local/bin/php
echo $arr["_"];
// 打印命令行参数(如果有的话)
print_r($arr["argv"]);
// 打印所有服务器变量
print_r($arr["_SERVER"]);
get_resource_type — 返回资源(resource)类型
此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误。
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打印:mysql link
$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印:file
gettype — 获取变量的类型
不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的。
建议使用is_函数:is_array()、is_bool()、is_float()、is_integer()、is_null()、is_numeric()、is_object()、is_resource()、is_scalar() 和 is_string()。
intval — 获取变量的整数值
intval( mixed $var[, int $base = 10] ) : int
通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。
注意:除非 var 是一个字符串,否则 base 不会起作用。
echo intval(42, 8); // 42
echo intval('42', 8); // 34
is_array — 检测变量是否是数组
is_bool — 检测变量是否是布尔型
is_callable — 检测参数是否为合法的可调用结构
is_countable — Verify that the contents of a variable is a countable value
is_double — is_float 的别名
is_float — 检测变量是否是浮点型
is_int — 检测变量是否是整数
若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric()。
is_integer — is_int 的别名
is_iterable — Verify that the contents of a variable is an iterable value
is_long — is_int 的别名
is_null — 检测变量是否为 NULL
is_numeric — 检测变量是否为数字或数字字符串
is_object — 检测变量是否是一个对象
is_real — is_float 的别名
is_resource — 检测变量是否为资源类型
is_scalar — 检测变量是否是一个标量
如果给出的变量参数 var 是一个标量,is_scalar() 返回 TRUE,否则返回 FALSE。
标量变量是指那些包含了 integer、float、string 或 boolean的变量,而 array、object 和 resource 则不是标量。
is_string — 检测变量是否是字符串
isset — 检测变量是否已设置并且非 NULL
isset说简单又不简单,很多注意细节:
检测变量是否设置,并且不是 NULL。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。
若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。
同时要注意的是 null 字符("\0”)并不等同于 PHP 的 NULL 常量。
如果一次传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 TRUE 计算过程从左至右,中途遇到没有设置的变量时就会立即停止。
print_r — 以易于理解的格式打印变量。
print_r( mixed $expression[, bool $return = FALSE] ) : mixed
很多phper并不知道print_r可以返回值,想要获取 print_r() 输出的内容,使用 return 参数。当此参数为 TRUE,print_r() 会直接返回信息,而不是输出。
serialize — 产生一个可存储的值的表示
serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。 这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。
但适合在php环境内传递序列串。
settype — 设置变量的类型
strval — 获取变量的字符串值
var 可以是任何标量类型。不能将 strval() 用于数组或对象。
unserialize — 从已存储的表示中创建 PHP 的值
如果传递的字符串不可解序列化,则返回 FALSE
unset — 释放给定的变量
unset( mixed $var[, mixed $...] ) : void
unset() 销毁指定的变量。
unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。
如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;//bar
如果您想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现
unset($GLOBALS['bar']);
如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
function foo(&$bar) {
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar\n";//something
foo($bar);
echo "$bar\n";//something
如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。
function foo()
{
static $bar;
$bar++;
echo "Before unset: $bar, ";
unset($bar);
$bar = 23;
echo "after unset: $bar\n";
}
foo();//Before unset: 1, after unset: 23
foo();//Before unset: 2, after unset: 23
foo();//Before unset: 3, after unset: 23
所以对于在局部中想unset一个全局(global引入)或外部变量(引用传递),并不会影响全局变量或外部变量。
// 销毁单个变量
unset ($foo);
// 销毁单个数组元素
unset ($bar['quux']);
// 销毁一个以上的变量
unset($foo1, $foo2, $foo3);
var_dump — 打印变量的相关信息
支持打印多个变量表达式。
var_export — 输出或返回一个变量的字符串表示
var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 函数类似,不同的是其返回的表示是合法的 PHP 代码。
常用于返回一个数组php代码,用于保存数组配置。
注意:var_export与print_r一样都有第二个参数,设置为true时,将不直接输出,而是返回值。