1. $_POST并非是HTTP POST过来的数据, 如json格式的数据就没法接受,这是因为由于历史原因,PHP只能解析Content-Type为 application/x-www-form-urlencoded 或 multipart/form-data的Http请求,只不过现在json流行了,如下处理即可:
$_POST = json_decode(file_get_contents('php://input'), true);print_r($_POST);
2.isset()函数是用来检测变量是否设置,但是如果变量值是NULL时也返回false。 这可能跟你的本意相反了,如下解决:
$a = null; echo isset($a); //false //下面是更可靠的检测方式echo array_key_exists('a', get_defined_vars()); //true
3.如何更有效的检测字符串长度。一般strlen函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。
if (strlen($foo) < 5) { echo “Foo is too short”$$ } //与下面进行比较if (!isset($foo{5})) { echo “Foo is too short”$$ }
调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。
推荐文章
2021-01-20 18:23:14
2021-01-22 17:24:38
2021-01-25 17:06:11
2021-01-28 17:37:27
2021-02-01 17:32:55
2021-02-03 17:41:37
2021-02-05 17:23:07
2021-02-08 16:59:58
稳定
产品可用性高于99.9%贴心
全国7*24小时客服热线专业
产品经理在线技术支持快速
快速上线运营快承诺
我们选择声誉坚持
10年专注高端品质开发