【转贴】读代码时遇到的php技术参考,关于空串、空变量的判断

以下为一些读代码时遇到的php技术参考,关于空串、空变量的判断
出处:http://www.php.net/manual/en/types.comparisons.php
我html画表格的神功又精进了XD

<table border="1" cellspacing="0" cellpadding="4">
<caption>Comparisons of $x with PHP functions</caption>
<tbody>
<tr bgcolor="#DDE2E6">
<td>Expression</td>
<td>gettype()</td>
<td>empty()</td>
<td>is_null()</td>
<td>isset()</td>
<td>boolean:if($x)</td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = "";</td>
<td>string</td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = null;</td>
<td>NULL</td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">var $x; (not set)</td>
<td>NULL</td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = array();</td>
<td>array</td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = false;</td>
<td>boolean</td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = 15;</td>
<td>integer</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = 1;</td>
<td>integer</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = 0;</td>
<td>integer</td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = -1;</td>
<td>integer</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = "15";</td>
<td>string</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = "1";</td>
<td>string</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = "0";</td>
<td>string</td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: red;">false</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = "-1";</td>
<td>string</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = "foo";</td>
<td>string</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = "true";</td>
<td>string</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
<tr>
<td bgcolor="#DDE2E6">$x = "false";</td>
<td>string</td>
<td><span style="color: red;">false</span></td>
<td><span style="color: red;">false</span></td>
<td><span style="color: green;">true</span></td>
<td><span style="color: green;">true</span></td>
</tr>
</tbody>
</table>

结论一:isset()用于判断“未定义”的情况。
结论二:empty()可以判断“未定义”和“已定义、但是为空、为0”的情况。
结论三:isset()is_null()互为反函数
结论四:empty()boolean:if($x)互为反函数