商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > php 传值带%27,PHP函数参考27-变量处理函数

php 传值带%27,PHP函数参考27-变量处理函数

  发布于2026-07-11 阅读(0)

扫一扫,手机访问

先说说 PHP 里那些跟变量打交道的基础函数,几乎每个项目都能碰到。这类函数用好了,代码能省不少心,用错了反而容易踩坑。下面这些,都是日常开发里绕不开的“老朋友”。

doubleval 其实就是 floatval 的别名,没区别,随你用哪个。

empty 这个函数看起来简单,但坑不少。它判断一个变量是否为空——如果变量不存在,或者值等于 false,就算空。关键是,它不会因为变量未定义而报错,挺适合做安全检查。哪些值被认为是空?空字符串 ""、整数 0、浮点 0.0、字符串 "0"、null、false、空数组、以及声明了但没赋值的变量。所以 empty() 本质上等价于 !isset($var) || $var == false

floatval 用来获取变量的浮点值,参数只能是标量类型(整数、浮点、字符串、布尔),不能传数组或对象。

get_defined_vars 返回一个多维数组,里面是所有已定义变量的列表——包括环境变量、服务器变量,还有你自己定义的。调试的时候偶尔会用,但生产环境不推荐频繁调用。

get_resource_type 返回资源(resource)的类型字符串。比如数据库连接、文件句柄,传进去会返回 "mysql link""file" 这类信息。注意如果参数不是合法资源,会报错。

gettype 返回变量的类型字符串。但官方手册里特别提醒:别用 gettype() 来做类型判断,因为返回的字符串在未来版本里可能变,而且字符串比较的效率也不高。推荐用 is_array()is_bool()is_float()……那一系列 is_ 函数。

intval 获取整数值,可以指定进制(默认十进制)。注意一点:只有 var 是字符串的时候,进制参数才生效。比如 intval(42, 8) 返回 42(因为 42 数字不受进制影响),而 intval('42', 8) 会返回 34(把八进制的 '42' 转成十进制)。

接下来是一组 is_ 系列检测函数:

is_arrayis_boolis_callable(检测是否为合法可调用结构)、is_countable(验证变量内容是否可数)、is_double(is_float 别名)、is_floatis_intis_integer(is_int 别名)、is_iterableis_long(is_int 别名)、is_nullis_numeric(检测数字或数字字符串,比如表单提交的 "123" 也算数字)、is_objectis_real(is_float 别名)、is_resourceis_scalar(检测标量:整数、浮点、字符串、布尔,数组和对象不算)、is_string

isset 这个函数说简单也简单,说复杂有很多细节。它用来检测变量是否已设置且非 null。如果变量用 unset() 释放过,isset 返回 false。如果把变量设置为 null,isset 也会返回 false。另外注意:null 字符 "\0" 和 PHP 的 NULL 常量是两码事。如果一次传多个参数,必须所有参数都设置了才返回 true,而且计算是从左到右,遇到没设置的立即停止。

print_r 以人类可读的格式打印变量。很多新手不知道它还有第二个参数:$return。如果设为 true,就不会直接输出,而是把内容作为字符串返回。这一点跟 var_export 一样。

serialize 生成一个可存储的变量表示,返回字符串。适合在不同 PHP 进程之间传递数据,保留类型和结构。但只建议在 PHP 环境内部使用,别混到其他语言里。

settype 设置变量的类型。

strval 获取变量的字符串值,同样只能处理标量,不能用于数组或对象。

unserialize 是 serialize 的逆操作,从字符串创建 PHP 值。如果字符串无法反序列化,就返回 false。

unset 释放变量。但它在函数内部的行为值得留意:如果在函数里 unset 一个全局变量(用 global 引入的),实际上只销毁了局部变量,外部全局变量不受影响。要想在函数里真正销毁全局变量,得用 unset($GLOBALS['bar'])。同样,通过引用传递的变量,unset 也只影响局部,外部原变量不变。静态变量呢?在函数内 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 一个全局或外部变量,在局部里是做不到彻底清除的,得用 $GLOBALS 或者传引用后在外面 unset。

var_dump 打印变量的详细信息(类型、值、长度等),支持一次传多个变量。

var_export 跟 var_dump 类似,但返回值是合法的 PHP 代码,可以直接拿去用。常用来把数组配置导出成 PHP 文件。同样,第二个参数设为 true 时,不输出而是返回字符串。

本文转载于:https://blog.csdn.net/weixin_35282085/article/details/116147872 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注