当前位置: 首页 > article >正文

参数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 类似,但这里强调“存在时才加前缀”这一条件。

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


http://www.kler.cn/a/535349.html

相关文章:

  • 【Android】jni开发之导入opencv和libyuv来进行图像处理
  • 变压器-000000
  • CSS(三)less一篇搞定
  • HTML学习笔记(6)
  • Mac上搭建k8s环境——Minikube
  • 解析PHP文件路径相关常量
  • Windows 中学习Docker环境准备3、在Ubuntu中安装Docker
  • Linux之守护进程,应用层协议
  • 【数据结构】_队列的结构与实现
  • 【Leetcode 每日一题】90. 子集 II
  • 基于多重算法的医院增强型50G全光网络设计与实践:构建智慧医疗新基石(上)
  • MS SQL Server partition by 函数实战二 编排考场人员
  • vite共享配置之---css相关
  • 【玩转 Postman 接口测试与开发2_018】第14章:利用 Postman 初探 API 安全测试
  • MAC OS安装Homebrew
  • android用eclipse开发碰到65535问题的完美解决方案
  • DMZ区的作用和原则
  • 【Windows 开发NVIDIA相关组件】CUDA、cuDNN、TensorRT
  • 3.5 Go(特殊函数)
  • 计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价预测 机器学习 深度学习 Python爬虫 HDFS集群
  • 嵌入式硬件篇---OpenMV基本使用自动增益\曝光\白平衡
  • Unity VideoPlayer播放视屏不清晰的一种情况
  • 网络安全风险量化值 网络安全风险控制
  • C# OpenCV机器视觉:利用TrashNet实现垃圾分类
  • Google地图瓦片爬虫——进阶版
  • 计算机网络之物理层通信基础(电路交换、报文交换与分组交换)