参数3说明

在PHP的 extract 函数中,当第二个参数是 EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时,第三个参数(前缀)会生效,以下是详细说明:

EXTR_PREFIX_ALL

无论变量是否已存在,都会给从数组中提取的所有变量加上指定前缀。例如:

<?php

$array = array('key1' => 'value1', 'key2' => 'value2');

$prefix = 'my_';

extract(array, EXTR_PREFIX_ALL, prefix);

var_dump($my_key1);

var_dump($my_key2);

?>

上述代码中,extract 函数将数组 $array 中的变量提取出来,并为它们都加上 my_ 前缀,执行后会分别输出 value1 和 value2。

EXTR_PREFIX_SAME

仅当变量名在当前作用域中已存在时,才给从数组中提取的变量加上指定前缀。示例如下:

<?php

$key1 = 'existing_value';

$array = array('key1' => 'new_value', 'key2' => 'value2');

$prefix = 'new_';

extract(array, EXTR_PREFIX_SAME, prefix);

var_dump($key1);

var_dump($new_key1);

var_dump($new_key2);

?>

这里 key1 原本已存在,extract 函数为新提取的 key1 加上 new_ 前缀变为 new_key1,而原本的 key1 保持不变,同时 key2 也被加上前缀成为 $new_key2。

EXTR_PREFIX_INVALID

当提取的变量名不是有效的PHP变量名时,才给它加上指定前缀。比如:

<?php

$array = array('1key' => 'value1', 'key2' => 'value2');

$prefix = 'fixed_';

extract(array, EXTR_PREFIX_INVALID, prefix);

var_dump($fixed_1key);

var_dump($key2);

?>

因为 1key 不是有效的PHP变量名(变量名不能以数字开头),所以会加上 fixed_ 前缀,而 $key2 是有效变量名,保持不变。

EXTR_PREFIX_IF_EXISTS

只有当变量在当前作用域中存在时,才给提取的变量加上指定前缀,与 EXTR_PREFIX_SAME 类似,但这里强调"存在时才加前缀"这一条件。

合理使用这些参数及对应的前缀设置,可以更灵活地控制变量提取过程,避免变量冲突等问题。

相关推荐
teacher伟大光荣且正确3 小时前
Qt Creator 配置 Android 编译环境
android·开发语言·qt
飞猿_SIR6 小时前
Android Exoplayer 实现多个音视频文件混合播放以及音轨切换
android·音视频
HumoChen997 小时前
GZip+Base64压缩字符串在ios上解压报错问题解决(安卓、PC模拟器正常)
android·小程序·uniapp·base64·gzip
沙振宇10 小时前
【HarmonyOS】ArkTS开发应用的横竖屏切换
android·华为·harmonyos
橙子1991101612 小时前
Kotlin 中的作用域函数
android·开发语言·kotlin
zimoyin12 小时前
Kotlin 懒初始化值
android·开发语言·kotlin
枣伊吕波13 小时前
第六节第二部分:抽象类的应用-模板方法设计模式
android·java·设计模式
萧然CS13 小时前
使用ADB命令操作Android的apk/aab包
android·adb
_extraordinary_17 小时前
MySQL 事务(二)
android·数据库·mysql
鸿蒙布道师21 小时前
鸿蒙NEXT开发动画案例5
android·ios·华为·harmonyos·鸿蒙系统·arkui·huawei