php数据类型之自动转换和强迫转换

PHP在PHP 5.x阶段都是完全的弱类型的编程语言。所谓弱类型,就是在声明变量的时间,不须要指定变量的类型。我要声明一个整型的变量,我不用在前面非得写上类型,再写变量。

PHP 7 的性能有很年夜的前进。现实测试的效果,PHP 7的性能与PHP5.6相比,提升了性能靠近200%。在PHP 7 中有些地方,我们可以强迫指定类型,也能够或许不用强迫指定类型来声明变量。

我们接来上去讲强迫类型转换和自动类型转换两个部门。

华夏棋牌【默写级别】布尔值的自动类型转换、强迫类型转换的英文单词

布尔值的自动类型转换

自动类型转换,就是数据类型在某些情形下,自动会酿成其他的类型加入运算。自动类型转换的发生时机是:运算和断定的时间某些值会自动阻拦转换。

下面的情形是布尔值断准时的自动类型转换

1,整型的0为假,其他整型值全为真

2, 浮点的0.0,布尔值的假。小数点后只需有一个非零的数值即为真。

3,空字符串为假,只需外面有一个空格都算真。

4,字符串的0,也将其看作是假。其他的都为真

5,空数组也将其视为假,只需外面有一个值,就为真。

6,空也为假

7, 未声明告成的资源也为假

我们针对以上针理的规则一项一项来做实验看算作果。

1,整型的0为假,其他整型值全为真

<?php
//整型的0,换成整型的其他值尝尝
$bool = 0;
if($bool){
   echo '玉人玉人我爱你';
}else{
   echo '凤姐凤姐爱去世我,推行假区间咯';
}
?>

2, 浮点的0.0,布尔值的假。小数点后只需有一个非零的数值即为真。

<?php
//浮点类型的的0,换成其他值尝尝
$bool = 0.0;
if($bool){
   echo '玉人玉人我爱你';
}else{
   echo '凤姐凤姐爱去世我,推行假区间咯';
}
?>

3,空字符串为假,只需外面有一个空格都算真。

<?php
//空字符串,中央没有空格哟。实验完加个空格尝尝
$str = '';
if($str){
    echo '玉人玉人我爱你';
}else{
    echo '凤姐凤姐爱去世我,推行假区间咯';
}
?>

4,字符串的0,也将其看作是假。其他的都为真

<?php
//0这个字符串哟,尝尝其他值看看
$str = '0';
if($str){
    echo '玉人玉人我爱你';
}else{
    echo '凤姐凤姐爱去世我,推行假区间咯';
}
?>

5,空数组也将其视为假,只需外面有一个值,就为真。

<?php
//这个数组当中啥也没放
$arr = array();
if($arr){
    echo '玉人玉人我爱你';
}else{
    echo '凤姐凤姐爱去世我,推行假区间咯';
}
?>

6,空也为假

<?php
//声清晰了了一个空的变量$bool
$bool = null;
if($bool){
    echo '玉人玉人我爱你';
}else{
    echo '凤姐凤姐爱去世我,推行假区间咯';
}
?>

7, 未声告成的资源也为假

<?php
//下面这段代码会显示正告,可忽视。暂时只须要对着实验知道效果便可:未声告成的资源也为假
//下面这一块懂自得思就行:掀开adasfasfasfdsa.txt这个不存在的文件
$res = fopen('adasfasfasfdsa.txt','r');
if($res){
    echo '玉人玉人我爱你';
}else{
    echo '凤姐凤姐爱去世我,推行假区间咯';
}
?>

其他类型的自动类型转换

华夏棋牌自动类型转换在运算时也能够或许发生。跟一切我们总结的纪律和不雅不雅点一样:先总结、后实验。

华夏棋牌只需标量在运算时会发生以下的自动类型转换:

2015-07-28_55b79dcad98de.png

<?php
//布尔变整型加入运算
$fo = true;
$result = $fo + 10;
//$result 效果为整型的11,由于$fo布尔的true酿成了1
//假定$fo的值为0
var_dump($result);
//字符串类型
$str = '419不要爱';
$result = $str + 1;
//效果为420。由于将$str酿成了整型的419加入运算
//将419放在字符串中央和开首尝尝
var_dump($result);
?>

总结:

布尔值的true加入运算是会酿成整型或许浮点的1布尔值的false加入运算是会酿成整型或许浮点的0字符串泉源处是整型或浮点类型的字符,会转成对应的类型加入运算

强迫类型转换

华夏棋牌强迫类型转换有三种要领:

    1.用前面的三个函数可以完成类型转换,intval()、floatval()、strval()

华夏棋牌    2.变量前加上()外面写上类型,将它转换后赋值给其他变量

    3.settype(变量,类型) 直接改变量自己

我们来阻拦实验:
intval()、floatval()、strval()转换

<?php
    $float = 1.23;
    $result = intval($float);
    //看算作果能否是变了?
    var_dump($result);
    //鸭脖子为整型的5
    $yabozi = 5;
    $re = floatval($yabozi);
    var_dump($re);
    //界说整型的变量
    $yabozi = 23;
    $bian = strval($yabozi);
    //强迫酿成字符串尝尝
    var_dump($bian);
?>

变量前加上()外面写上类型,将它转换后赋值给其他变量

<?php
   //界说一个变量,我们来变换一下尝尝
   $transfer = 12.8;
   //把浮点酿成整型
    $jieguo = (int)$transfer;
    var_dump($jieguo);
   //把浮点酿成布尔
   $jieguo = (bool) $transfer;
   var_dump($jieguo);
   //把布尔变整型
   $bool = true;
   $jieguo = (int)$bool;
   var_dump($jieguo);
    //把浮点变数组
   $fo = 250;
   $jieguo = (array)$fo;
   var_dump($jieguo);
   //其他的操作要领,凭证文字总结的纪律你来尝尝
?>

settype(变量,类型) 直接改变量自己

<?php
    //界说浮点酿成整型
    $fo = 250.18;
   //settype第二个参数是int,你实验的时间要记得第二个参数要为字符串类型
    settype($fo,'int');
    //输入看算作果
    var_dump($fo);
?>

【你尝尝】以下是强迫类型转换时的特点,每项你做实验看看对纰谬:

    1.空转为整型会为整型的0

华夏棋牌    2.空转为浮点会为浮点的0

    3.空转为字符串会为空字符串‘’

    4.浮点的123.0转为字符串会为字符串123

    5.浮点的123.2转为字符串会为字符串的123.2

    6.浮点纵然小数点再年夜,它都邑被干掉落落,会舍掉落落小数点前面的值

    7.假定字符串转为整型的时间,假定数值在前面,会将前面的数值拿出来做为整型的转换值。

    8.settype(变量,'null'); 等价于 unset()一个变量

    9.$目的变量 = (类型)$操作变量 只会改变目的变量的类型,不会改变原变量的类型,Settype是改变原值

<?php
      //当心爱,记得自己做实验,验证下面的9点哟
    $t=12.9;
    settype($t,'int');
    var_dump($t);
?>

set 读音:[sɛt]
诠释:设置

type 读音:[taɪp]
诠释:类型、要领


一连学习
||
<?php //浮点类型的的0,换成其他值尝尝 $bool = 0.0; if($bool){ echo '玉人玉人我爱你'; }else{ echo '凤姐凤姐爱去世我,推行假区间咯'; } ?>
提交重置代码
章节
条记
提问
课件
反映
捐赠

php入门教程之一周学会PHP

  • 推荐课程
  • 议论
  • 问答
  • 条记
  • 课件下载

清水师长教员

华夏棋牌<?php $a = '15.88888'; settype($a,'int');//将原值$a改变了; var_dump($a); $b = '15.88888'; $c = (int)$b;//原值$b未被改变 var_dump($c); ?>

1年前    添加回复 1华夏棋牌

回复

随着独孤九贱学PHP

华夏棋牌验证 8 9 给下 验证历程

1年前    添加回复 1

回复

phpcn_u13796

要保持哟!

1年前    添加回复 1

回复

悟以往

签到

1年前    添加回复 1

回复

reset

华夏棋牌能把echo输入的写明确点吗?凤姐躺枪啊

5个月前    添加回复 0华夏棋牌

回复

猛火

华夏棋牌6.浮点纵然小数点再年夜,它都邑被干掉落落,会舍掉落落小数点前面的值 甚么意思???求解

5个月前    添加回复 0

JD

同问,他应当说的是浮点转整型吧,但是浮点型小数点后有14个9的话是舍掉落落小数点前面的,但是有15个9的话,整型是加了1,并没有舍去。

JD · 2019-05-13 18:53
回复

华夏棋牌<?php $bl=10; $bl2=20; $jieguo=(string)$bl; var_dump($jieguo); var_dump($bl);//$b1还是整形 settype($bl2,'float'); var_dump($bl2);//$bl2从整形酿成了浮点型了 ?>

1年前    添加回复 0华夏棋牌

回复

<?php /* $bl=10; unset($bl); var_dump($bl); */ $bl=10; settype($bl,'null'); var_dump($bl) ?>//两个值都反回的都是NULL

1年前    添加回复 0华夏棋牌

回复

清水师长教员

华夏棋牌<?php $a = 123.11111111; $b = (string)$a; var_dump($b); ?>

1年前    添加回复 0

回复

清水师长教员

<?php $a = 123.0; $b = (string)$a; var_dump($b); ?>

1年前    添加回复 0华夏棋牌

回复

清水师长教员

<?php $a = null; $b = strval($a); var_dump($b); ?>

1年前    添加回复 0

回复

清水师长教员

<?php $a = null; $b = (float)$a; var_dump($b); ?>

1年前    添加回复 0

回复

清水师长教员

<?php $a = 11.8; $b = (int)$a; var_dump($b); ?>

1年前    添加回复 0

回复

小圈圈~

实验9 <?php $j = 1234.33; $k = (int)$j; echo $k . '<br>'; echo $j; ?>

1年前    添加回复 0

回复

小圈圈~

华夏棋牌实验8 <?php $h = 23; settype($h,'null'); echo $h; $i =233; unset($i); //settpe(变量,'null')等价于unset(); ?>

1年前    添加回复 0华夏棋牌

回复

为甚么直接用var_dump()函数输入settype()强迫转换的数据,会显示bool数据华夏棋牌

[最新 城南花已开 的回复] 嗯嗯 是的,我查到了由于settype 函数结构bool settype ( mixed var, string type ),他只会前往***值。

时间:5个月前

为啥用gettype取得类型int后会是string华夏棋牌

[最新 卖女孩的小磷寸哟 的回复] 你知道个屁啊

时间:1年前

假定变量i的值为6,floatval()转换的话应当是6.0吧 而不是6吧?

[最新 数据剖析师 的回复] 假定变量i的值为6,floatval()转换的话应当是6.0吧 而不是6吧?-华夏棋牌-万豪棋牌电玩城-微信娱乐棋牌问答-假定变量i的值为6,floatval()转换的话应当是6.0吧 而不是6吧?-华夏棋牌-万豪棋牌电玩城-微信娱乐棋牌问答围不雅不雅一下哦,学习一下。

时间:2年前

Nanson

华夏棋牌强迫类型转换发生在数值类型和字符串类型之间。

1星期前  0

Nanson

empty:一切虚无都是空,四年夜皆空。isset(判 null)==>夭折(未声明)为null,自杀(声明为null),被抹杀(unset)为null

1星期前  0

Nanson

华夏棋牌自动类型转换的时机: 01 标量之间 02 标量之间阻拦逻辑断定或运算

1星期前  0

王俊皓

华夏棋牌字符串的0,也将其看作是假。其他的都为真

1个月前  0

哆来咪发唆

华夏棋牌gettype() settype()

1个月前  0

门祖先海、

自动类型转换,就是数据类型在某些情形下,自动会酿成其他的类型加入运算。自动类型转换的发生时机是:运算和断定的时间某些值会自动阻拦转换。 下面的情形是布尔值断准时的自动类型转换: 1,整型的0为假,其他整型值全为真 2, 浮点的0.0,布尔值的假。小数点后只需有一个非零的数值即为真。 3,空字符串为假,只需外面有一个空格都算真。 4,字符串的0,也将其看作是假。其他的都为真 5,空数组也将其视为假,只需外面有一个值,就为真。 6,空也为假 7, 未声明告成的资源也为假

1个月前  0

陈远

强迫类型转换有三种要领: 1.用前面的三个函数可以完成类型转换,intval()、floatval()、strval() 2.变量前加上()外面写上类型,将它转换后赋值给其他变量 3.settype(变量,类型) 直接改变量自己

2个月前  0

华夏棋牌下面的情形是布尔值断准时的自动类型转换: 1,整型的0为假,其他整型值全为真 2, 浮点的0.0,布尔值的假。小数点后只需有一个非零的数值即为真。 3,空字符串为假,只需外面有一个空格都算真。 4,字符串的0,也将其看作是假。其他的都为真 5,空数组也将其视为假,只需外面有一个值,就为真。 6,空也为假 7, 未声明告成的资源也为假

2个月前  0

华夏棋牌布尔值断准时的自动类型转换: 1,整型的0为假,其他整型值全为真 2, 浮点的0.0,布尔值的假。小数点后只需有一个非零的数值即为真。 3,空字符串为假,只需外面有一个空格都算真。 4,字符串的0,也将其看作是假。其他的都为真 5,空数组也将其视为假,只需外面有一个值,就为真。 6,空也为假 7, 未声明告成的资源也为假

2个月前  0

silent

布尔值断准时的自动类型转换: 1,整型的0为假,其他整型值全为真 2, 浮点的0.0,布尔值的假。小数点后只需有一个非零的数值即为真。 3,空字符串为假,只需外面有一个空格都算真。 4,字符串的0,也将其看作是假。其他的都为真 5,空数组也将其视为假,只需外面有一个值,就为真。 6,空也为假 7, 未声明告成的资源也为假

3个月前  0

能否

3,空字符串为假,只需外面有一个空格都算真 4,字符串的0,也将其看作是假。其他的都为真 5,空数组也将其视为假,只需外面有一个值,就为真 6,空也为假 7, 未声告成的资源也为假

4个月前  0

能否

华夏棋牌2, 浮点的0.0,布尔值的假。小数点后只需有一个非零的数值即为真

4个月前  0

能否

华夏棋牌1,整型的0为假,其他整型值全为真

4个月前  0

set 设置 ,type 类型

4个月前  0

QWERTYUIOP

1. settype()改变原变量值,(类型)是培植一个新变量,不改变原值 2.settype( ,'null')即是unset这个变量

4个月前  0

课件暂不供应下载,使命职员正在整理中,前期请多关注该课程~