学php碰到的坑

新版本的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();函数比对相同,显然不属于数组,普通的数组和普通的字符串得到的都没有单引号,这就是弱类型的坏处,让人抓狂!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值