关于php获取字符串的一个小坑

  这几天在做用户登录注册的东西。。今天遇到一个小坑,,记录一下,过程如下:

用户输入用户名密码的时候有个选择框选择是否自动登录,如下:

下次自动登录

然后ajax发送表单数据{"autologin":checkboxDOM.cheched};

后台php接受参数如下 $autologin = $_POST["autologin"];

到这里一切看起来都很完美。。。没什么问题

然后我根据$autologin变量来种cookie代码如下:

   
	if($autologin){
		echo $autologin;
		setCookie(..,time...);
	}else{
		setCookie();
	}

测试的时候就发现。。怎么都进入不来else的这个分支。。打印出$autologin;会显示true或者false;

然后我愣住了2分钟,幡然醒悟。。。这货是个字符串啊不是Bool类型,因为php输出Bool的true会输出1,而false会输出空, 然后果断把代码改为

   
	if($autologin=="true"){
		echo $autologin;
		setCookie(..,time...);
	}else{
		setCookie();
	}
测试通过。。。嗯。做个日志记录一下。。下次切记弱类型的语言比较的时候不要再掉坑里去了。。。
本文标题:关于php获取字符串的一个小坑
本文链接:https://56way.com/p/9.html
作者授权:除特别说明外,本文由 无路 原创编译并授权 小无路 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。