<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="非常实用的PHP小细节" id="card1">
<p> 游客</p><p>
标题:非常实用的PHP小细节<br/>
正文:<br/>
 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。 这可能跟你的本意相反了，如下解决：[代码]php代码：$a = null; echo isset($a);  //false //下面是更可靠的检测方式echo array_key_exists('a', get_defined_vars());  //true3.如何更有效的检测字符串长度。一般strlen函数执行起来相当快，因为它不做任何计算，只返回在zval结构（C的内置数据结构，用于存储PHP变量）中存储的已知字符串长度。但是，由于strlen()是函数，多多少少会有些慢，因为函数调用会经过诸多步骤，如字母小写化（译注：指函数名小写化，PHP不区分函数名大小写）、哈希查找，会跟随被调用的函数一起执行。在某些情况下，你可以使用isset()技巧加速执行你的代码。[代码]php代码：if (strlen($foo) &amp;lt; 5) { echo &amp;ldquo;Foo is too short&amp;rdquo;$$ } //与下面进行比较if (!isset($foo{5})) { echo &amp;ldquo;Foo is too short&amp;rdquo;$$ }调用isset()恰巧比strlen()快，因为与后者不同的是，isset()作为一种语言结构，意味着它的执行不需要函数查找和字母小写化。也就是说，实际上在检验字符串长度的顶层代码中你没有花太多开销。<br/><a href="https://www.ntsem.com/blog/wap.asp?mode=WAP&amp;act=View&amp;id=244&amp;Page=1">[&lt;&lt;]</a><a href="https://www.ntsem.com/blog/wap.asp?mode=WAP&amp;act=View&amp;id=244&amp;Page=1">[[1]]</a><a href="https://www.ntsem.com/blog/wap.asp?mode=WAP&amp;act=View&amp;id=244&amp;Page=1">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=244">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=244">发表评论</a><br/><br/>

<br/>

<br/>
<a href="https://www.ntsem.com/blog/wap.asp">首页</a>
</p>
</card>
</wml>