新版本的php的坑:
电脑上新版本,利用PHP_VERSION常量输出版本号
7.4.18
如果select没有数据的话,数据集没有得到数据,后面的从数据集获取的函数就会报错
数据库没有函数
服务器上旧版本
7.4.15
一样的函数,一样的数据库没有数据
不会报错
php数组元素转变为字符串操作
从$_GET[]函数数组里取出的数不是字符串类型的,无法利用int strcasecmp();函数判断是否相等
$zz=$_GET[0];
if (strcasecmp("''.$zz.''","''.'sdf'.''")==0) {
echo "get";
}
需要对得到的数据左右拼接一个空串,右边的字符做同样操作
通过实验分析得到如下
$a="sdf";
$b='23';
$arrayName = array('s'=>$a,'ss'=>$b );
print_r($arrayName);
$zz=$_GET[0];
$dd='sdf';
$ssss=$arrayName['s'];
echo $zz;
echo " ";
echo $ssss;
echo " ";
echo $dd;
echo "
";
if (strcasecmp($ssss,'sdf')==0) {
echo "array";
}
echo "
";
if (strcasecmp("''.$zz.''","''.'sdf'.''")==0) {
echo "get";
}
echo "
";
if (strcasecmp($dd,"sdf")==0) {
echo "string";
}
?>
由此不难看出,通过get得到的数组元素带有单引号,不能够通过strcasecmp();函数比对相同,显然不属于数组,普通的数组和普通的字符串得到的都没有单引号,这就是弱类型的坏处,让人抓狂!!!!!