您的位置 首页 php

web开发之-PHP类型转换

php的类型上一篇文章已经讲过了,那么,当我有一个字符串变量,我想要把这个字符串转换成整型,能否转换呢?答案是肯定的,可以的!我们先思考下面一个例子:

 <?php
$a = "123";
$b=123;
if($a==$b)
{
  echo "这两个值是相等的";
}else{
  echo "这两个值是不相等的";
}
?>  

如果你运行一下,会发现,以上会输出以下内容:

 这两个值是相等的  

同样的,我们再看另外一个例子:

 <?php
$a = "123";
$b=123;
if($a===$b)
{
  echo "这两个值是相等的";
}else{
  echo "这两个值是不相等的";
}
?>  

同样再次运行,会输出:

 这两个值是不相等的  

那么问题来了,就多了一个=号输出内容却不一致,这是为什么呢?这就是我们要说的类型转换。

在PHP中, 有4种常见类型之间是可以自动相互转换的,在对他们进行比较时,会相互进行转换,然后再进行判断。这4个类型是: int(整型)、float(浮点型)、string(字符型)、bool(型)。

==和===也是有区别的:

==在判断两个值是否相等时,不会进行类型的判断 ,会自动地进行类型的转换,比如以上,会把$a转换成整型,再进行对比两个值是 相等的

===在判断两个值是否相等时,会先进行类型的判断 ,以上第二个例子中$a是字符型,而$b是整型,两个属于不同的类型,所以会 不相等。

那么如何把上面的例子2中的变量$a来进行类型转换呢,有两种方法,看下面两个例子:

 <?php
$a = "123";
$b=123;
if((integer)$a===$b)
{
  echo "这两个值是相等的";
}else{
  echo "这两个值是不相等的";
}
?>  

以上会输出:

 这两个值是相等的  

再看一个例子:

 <?php
$a = "123";
$b=123;
settype($a,'integer');
if($a===$b)
{
  echo "这两个值是相等的";
}else{
  echo "这两个值是不相等的";
}
?>  

以上会输出:

 这两个值是相等的  

由上得知,类型转换有两种方式:

1.在变量前添加相要转换的类型,例如 (integer)$a;

2.使用系统内置函数,settype,例如settype($a,’integer’);

文章来源:智云一二三科技

文章标题:web开发之-PHP类型转换

文章地址:https://www.zhihuclub.com/149950.shtml

关于作者: 智云科技

热门文章

网站地图