php诡异函数count()

天南之所以说count()函数诡异,是因为这个函数的返回值很难把握,而也有很多面试官喜欢考这种陷井题。

在PHP中,count()函数用来计算数组中的单元数目或对象中的属性个数,如果大家都规矩地按这个原则来使用,则没有什么问题,但做为开发者,你不能保证此函数参数一定就是数组或对象,因为此函数没有对参数进行严格检查。

下面以代码示例来展示count()函数诡异的一面:
define(‘DB’, null);
define(‘DB2’, false);
define(‘DB3’, 0);
$bc = 0;
$ec = null;
$fc = false;
$gc = array();
echo count(DB3) . ‘<br />’; //1
echo count(null) . ‘<br />’; //0
echo count(DB1) . ‘<br />’; //1,未定义的常量离奇地返回1
echo count(DB2) . ‘<br />’; //1
echo count(DB) . ‘<br />’; //0
echo count($ac) . ‘<br />’; //0,未定义的变量返回0
echo count($bc) . ‘<br />’; //1
echo count($ec) . ‘<br />’; //0
echo count($fc) . ‘<br />’; //1
echo count($gc) . ‘<br />’; //0

发布者:天南

一个好人

留下评论

电子邮件地址不会被公开。 必填项已用*标注