今天练习时遇到的,我把出错代码提取出来,如下:
<?php
$entry = "how are you.jpg";
$extensions = ".jpeg";
$compare = stristr($entry, $extensions);
if(strlen($compare) == strlen($entensions))
{
echo "into";
}
?>在这段代码中,变量compare的值输出为空,用strlen求值为0,extensions用strlen求值为5,如此,肯定进不了if里面,而事实是,strlen($compare) == strlen($extensions)的结果为真!!!
抓狂了,求高人为我指点迷津,拜谢!!!
<?php
$entry = "how are you.jpg";
$extensions = ".jpeg";
$compare = stristr($entry, $extensions);
if(strlen($compare) == strlen($entensions))
{
echo "into";
}
?>在这段代码中,变量compare的值输出为空,用strlen求值为0,extensions用strlen求值为5,如此,肯定进不了if里面,而事实是,strlen($compare) == strlen($extensions)的结果为真!!!
抓狂了,求高人为我指点迷津,拜谢!!!
$extensions = ".jpeg";
$compare = stristr($entry, $extensions);
var_dump($compare); //false
if(strlen($compare) == strlen($entensions)) { //这里是一个巧合,正好都是5个字符,所以表达式的值为true
echo "into";
}//修改
if ($compare && strlen($compare) == strlen($entensions)) echo 'into';
在这里$compare中的值实际是false,那么strlen()这个函数也能对bool类型进行求值?为什么strlen($compare)的值为0呢?
你说那是一个巧合,都是5个字符,但是if中strlen($compare)和strlen($entensions)的输出分别为0和5,我把$extensions改了长度,结果还是一样,这是为什么呢?