php小事日常记

  1. 优先级例外 (不重要)
    当&& 于赋值号= 同时出现时,没有严格遵循优先级规则
if ($a = 100 && $b = 200) {
     var_dump($a, $b);
}

如果严格按照优先级,这个地方是有问题的,$a = (100 && $b) = 200

2.foreach value引用后为什么要unset(重要)

$a = ['a', 'b', 'c'];    
$b = ['d', 'e', 'f'];
foreach ($a as &$value) {
    echo $value . PHP_EOF;
}
//unset($value);
var_dump($a);
foreach ($a as $value) {
    echo $value . PHP_EOF;
}

当在第一次循环不unset掉value的时候, 通过打印 a a 会 发 现 , 引 用 挂 在 最 后 , 当 下 一 次 再 循 环 a, 并且 value v a l u e 又 被 重 复 利 用 时 , 就 出 现 了 问 题 , 上 面 打 印 结 果 为 , 引 用 指 向 了 上 一 次 v

a
b
c
a
b
b

3.$_POST与php://input的区别与坑

  • 当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变 量以关联数组形式传入当前脚本。
  • php://input 是个可以访问请求的原始数据的只读流。 enctype=”multipart/form-data” 的时候php://input 是无效的,仅仅能获取到空串。

请求主体:(x-www-form-urlencoded)

Content-Type: application/x-www-form-urlencoded
Content-Length: 23

name=test&submit=submit

输出:

----------input--------
//var_dump(file_get_contents('php://input', 'r'));
string 'name=test&submit=submit' (length=23)

----------post---------
//var_dump($_POST);
array (size=2)
  'name' => string 'test' (length=4)
  'submit' => string 'submit' (length=6)

例子2:
请求:(multipart/form-data)

Content-Type: multipart/form-data; boundary=
---------------------------22554656810024
Content-Length: 245

-----------------------------22554656810024
Content-Disposition: form-data; name="test"

test
-----------------------------22554656810024
Content-Disposition: form-data; name="submit"

submit
-----------------------------22554656810024--

输出:

----------input--------
//var_dump(file_get_contents('php://input', 'r'));
string '' (length=0)

----------post---------
//var_dump($_POST);
array (size=2)
  'name' => string 'test' (length=4)
  'submit' => string 'submit' (length=6)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值