PHP仅仅解析Content-Type为 application/x-www-form-urlencoded 或 multipart/form-data的Http请求
<?php
$post = $_POST;
var_dump($post);
PHP_EOL;
$param = file_get_contents('php://input');
var_dump($param);
PHP仅仅解析Content-Type为 application/x-www-form-urlencoded 或 multipart/form-data的Http请求。之所以这样是因为历史原因,PHP最初实现$_POST时,最流行的就是上面两种类型。因此虽说现在有些类型(比如application/json)很流行,但PHP中还是没有去实现自动处理。
对于Content-Type为 application/json的请求,我们需要手工去解析json数据
json_decode(file_get_contents('php://input'),true);
empty()的使用
<?php
$array = [];
$arrayobject = new ArrayObject();
var_dump(empty($array));
var_dump(empty($arrayobject));
检查一个数组是否为空最好是用 count() 函数
foreach循环后留下悬挂指针
<?php
$array = [1, 2, 3];
foreach ($array as &$value) {}
echo implode(',', $array) . '<br />';
foreach ($array as $value) {}
echo implode(',', $array) . '<br />';
第一个循环过后,$value是数组中最后一个元素的引用。
第一步:复制$arr[0]到$value(注意此时$value是$arr[2]的引用),这时数组变成[1,2,1]
第二步:复制$arr[1]到$value,这时数组变成[1,2,2]
第三步:复制$arr[2]到$value,这时数组变成[1,2,2] ($arr[2]的值为2)
foreach循环后用unset函数销毁变量
isset()函数
<?php
var_dump(isset($a));
$b = null;
var_dump(isset($b));
变量不存在时会返回false,变量值为null时也会返回false。