当前位置:首页 > PHP > 正文内容

php中0和字符串比较时注意的问题

高老师6年前 (2020-03-09)PHP1693

在正式介绍前先抛出一段代码:

<?php
//输入的密码
$password = empty($_POST['password']) ? 0 : $_POST['password'];

//设置的密码
$server_password = 'a123456';

if ($server_password == $password)
{
    echo '密码正确';
}
else
{
    echo '密码错误';
}

我本来的想法是用户不输入密码直接提交就当用户输入的是0,但是结果另外意外了,竟然输出密码正确。难道0还能等于a123456 ?那我们验证下:

<?php
var_dump((0 == 'a123456'));  //输出true

经过一番了解后才知道在php中如果字符串和数字进行对比,字符串将会被强制转换为int类型和数字对比,例如上面的代码等同于下面的代码:

0 == intval('a123456')

因为a123456无法转换为int型因此变为了0,如果字符串是'123456'那就不影响了,intval后依然是123456

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/128.html

分享给朋友:

“php中0和字符串比较时注意的问题” 的相关文章

PHP防止SQL注入,PHP防止XSS攻击

PHP防止SQL注入,PHP防止XSS攻击

1.解压后,上传整个文件夹至服务器根目录2.在网站的一个公用文件(如数据库的连接文件)中加入代码:if(is_file($_SERVER['DOCUMENT_ROOT'].'/360safe/360webscan.php')){   &n...

PHP获取原始数据

PHP获取原始数据

在项目中需要对图片进行裁剪,前端裁剪完成发送base64给后端,但是很意外的PHP获取到的数据和前端有点差距,之前我都是先加密,后端解密,但是这次依然不行。于是使用filter_input方法轻松解决。$base64 =  filter_input(INPUT_POST...

php 开启错误提示,php 关闭错误提示

php 开启错误提示,php 关闭错误提示

开启错误提示代码:ini_set("display_errors", "On"); error_reporting(E_ALL | E_STRICT);关闭错误提示代码:error_reporting(E_ALL ^&n...

php 将数组键值转为变量

php 将数组键值转为变量

<?php $data=array('a'=>1,'b'=>2,'c'=>3,'d'=>4); extract($data); var_dump($a,$b,$c,$d); ?>在人人商城中捡到的...

xmlrpc  php,php通过xml-rpc进行通信

xmlrpc php,php通过xml-rpc进行通信

xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...

php下载远程文件(支持断点续传,支持超大文件)

php下载远程文件(支持断点续传,支持超大文件)

断点下载的原理:http请求头添加Range参数告诉文件服务器端需要的字节范围例如1个文本文件的字节为1000,第一次请求Range: bytes=0-500第二次请求Range: bytes=501-1000通过每次的请求将返回的流追加写入到文件。注意的项目:断点下载服务器端的每次只返回字节传输的...