记录php中一种骚操作

$options = array(
    ‘config‘ => array(
        ‘aaa‘ => 111,
        ‘bbb‘ => 222,
    ),
    ‘headers‘ => array(
        ‘Content-Type‘ => ‘application/json;charset=utf-8‘
    ),
    ‘params‘ => array(
        ‘p1‘ => ‘hello‘,
        ‘p2‘ => ‘world‘,
    ),
    ‘signOptions‘ => array(
        ‘ccc‘ => ‘333‘,
    ),
);

list($config,$headers,$params,$signOptions) = parseOptions($options,‘config‘,‘headers‘,‘params‘,‘signOptions‘);
echo ‘<pre>‘;
print_r($config);
echo ‘<br>‘;
print_r($headers);
echo ‘<br>‘;
print_r($params);
echo ‘<br>‘;
print_r($signOptions);
echo ‘<br>‘;

function parseOptions(array $options) {
    return doParseOptions($options,array_slice(func_get_args(), 1),false);
}

function doParseOptions(array $options,array $args,$allowExtraOptions) {
    $result = array();
    foreach ($args as $arg) {
        if (isset($options[$arg])) {
            $result[] = $options[$arg];
            unset($options[$arg]);
        } else {
            $result[] = null;
        }
    }
    if (!$allowExtraOptions && count($options) > 0) {
        throw new \InvalidArgumentException(
            ‘Unexpected options:‘ . implode(‘,‘, array_keys($options))
            . ‘ Acceptable options are:‘ . implode(‘,‘, $args)
        );
    }
    return $result;
}

输出结果:

Array
(
    [aaa] => 111
    [bbb] => 222
)

Array
(
    [Content-Type] => application/json;charset=utf-8
)

Array
(
    [p1] => hello
    [p2] => world
)

Array
(
    [ccc] => 333
)

关注点:

php中的元组,获取参数列表函数

原文地址:https://www.cnblogs.com/jun1019/p/10303287.html

时间: 2024-08-30 04:44:29

记录php中一种骚操作的相关文章

对OpenCV中3种乘法操作的理解掌握

参考了<Opencv中Mat矩阵相乘--点乘.dot.mul运算详解 >"http://blog.csdn.net/dcrmg/article/details/52404580"的相关内容. 乘法是线性代数的基本操作,在OpenCV中有三种方法实现了乘法. 一.向量乘法 这两幅图像说明的就是向量乘法.在OpenCV中采用" . "来实现,要求是第一个矩阵的列值等于第二个矩阵的行值.且每个矩阵都是float结构. Mat A = Mat(3,3,CV_32

python list 中 remove 的骚操作/易错点

在过去的某一天(2019.3.19),有个学弟问了一个关于python list中的一个问题: 比如我们已知一个列表 [3,4,5,6,5,4,3] 我们想删除第一个为3的元素. 我们尝试了如下几种方式: In [1]: print [3,4,5,6,5,4,3].remove(3) None In [2]: list = [3,4,5,6,5,4,3] In [3]: print list.remove(3) None In [4]: list.remove(3) In [5]: print

位运算的骚操作

位运算的骚操作(一)之四则运算 ? 可以这样说,位运算是我们刚开始学计算机就会接触到的一种东西.那么位运算这么常见,我们是否可以使用它来做一些骚操作呢? 使用的运算符包括下面(java还有一个>>>无符号右移): 含义 运算符 例子 左移(后面补0) << 0011 => 0110 右移(正数前面补0,负数补1) >> 0110 => 0011 按位或 ︳ 0011 ------- => 1011 1011 按位与 & 0011 ----

SQL Server中的三种物理连接操作:嵌套循环连接、合并连接、哈希匹配

浅谈SQL Server中的三种物理连接操作 Merge join.Hash join.Nested loop join对比分析 版权声明:本文为博主原创文章,未经博主允许不得转载.

C/C++中几种操作位的方法

参考How do you set, clear and toggle a single bit in C? c/c++中对二进制位的操作包括设置某位为1.清除某位(置为0).开关某位(toggling a bit).检查某位是否为1等.这些操作较为常见并且可以作为其他位运算的基础接口,以下罗列几种方法: 传统方法 设置某位为1 number |= 1 << x; // 设置第x位为1 清除某位 number &= ~(1 << x); // 置第x位为0 开关某位 numb

EntityFramework中几种操作小结

目前项目中使用到的EntityFramework中几种操作小结,先标记下.没有详细介绍,后续有空的话再补充一些并完善一下. ? 列中加入RowVersion时间戳 ????public class Product????{????????public int Id { get; set; }????????public string Name { get; set; } ????????[Timestamp]????????public Byte[] RowVersion { get; set;

记一次SqlServer骚操作——递归

目录 记一次SqlServer骚操作--递归 创建一个测试表,并灌入一些数据 兼容MSSQL2008以下的版本 正向查找 反向查找 MSSQL2008以后的版本 正向查找 反向查找 记一次SqlServer骚操作--递归 ? 最进需要用到sql递归更新数据的问题,因为需要兼容Sql Server 2000的语法,所以在Sql Server2008前后有两种不同的写法,这里简单记录一下. 创建一个测试表,并灌入一些数据 CREATE TABLE Test ( Id INT, PId int ) I

Mac OS 上的一些骚操作

本帖记录个人在使用 Mac 操作系统上的一些骚操作,不断更新,以飨读者. 快速移动网页到顶部或底部 用双指上下划触摸板吗?NO,我们有更骚的操作: command + ↑ 回到顶部 command + ↓ 滚到底部 另外, fn + ↑ 上滚一页 fn + ↓ 下滚一页 fn + ← Home,回到顶部 fn + → End,滚到底部 粘贴文字时不要带样式 有时候从网上看到不错的文字想要粘贴到 Word.Evernote 或者文字编辑应用上,但使用 command + v 会连文字样式都带过来,

【转】《深入理解计算机系统》C程序中常见的内存操作有关的典型编程错误

原文地址:http://blog.csdn.net/slvher/article/details/9150597 对C/C++程序员来说,内存管理是个不小的挑战,绝对值得慎之又慎,否则让由上万行代码构成的模块跑起来后才出现内存崩溃,是很让人痛苦的.因为崩溃的位置在时间和空间上,通常是在距真正的错误源一段距离之后才表现出来.前几天线上模块因堆内存写越界1个字节引起各种诡异崩溃,定位问题过程中的折腾仍历历在目,今天读到<深入理解计算机系统>第9章-虚拟存储器,发现书中总结了C程序中常见的内存操作有