类型转换

  • 2020-07-08 11:11:39
  • 阅读次数:
  • 作者:盈岚科技小编
  • 来源:http://www.lyjtt.cn

网站建设中PHP是一种弱类型语言,但是在开发中还是需要用到类型转换。PHP中的类型转换与C语言一样,非常简单,只需要在变量前面加上用括号括起来的类型名称即可。

除了使用强制转换外,还可以使用settype()函数转换数据类型。该函数包含参数值,第一个值为变量名,第二个参数值为要转换的类型字符串,包括boolean、float、integer、string、null、array、object。settype()函数返回值为布尔值,如果数据类型转换成功,则返回true,否则返回false。例如,输入下面代码<?php$num = '3.1415926abc';            //声明字符串变量echo (integer)$num;               //把变量强制转换为整型echo '<p>';echo $num;                        //输出原始变量值echo '<p>';echo settype($num, 'float');      //输出把变量转换为浮点数的结果echo '<p>';echo $num;                        //被转换为浮点数后的变量值?>

  1. 转换为布尔值

    要明确地将一个值转换成boolean,应该使用(bool)或者(boolean)来强制转换。但是很多情况下不需要用强制转换,因为当运算符、函数或者流程控制结构需要一个boolean参数时,该值会被自动转换。在PHP中,并不是false才是假的,在某些特殊情况下,下面这些boolean值也被认为是假的。   

    •0:整型值零。

    •0.0:浮点型值零。   

    •"0":字符串值零。   

    •"":空白字符串。   

    •空数组:不包括任何元素的数组。   

    •空对象:不包括任何成员变量的对象(仅PHP 4.0适用)。   

    •特殊类型NULL(包括尚未设定的变量)。   

    •从没有任何标记的XML文档生成的Sim-pleXML对象。

    其他所有其他值都被认为是true(包括任何资源)。注意,-1和其他非零值(不论正负)一样,被认为是真。<?phpvar_dump((bool) "");      //bool(false)var_dump((bool) 1);       //bool(true)var_dump((bool) "1");     //bool(true)var_dump((bool) array()); //bool(false)var_dump((bool) "false"); //bool(true)?>

    2. 转换为整型要明确地将一个值转换为整型,可以使用(int)或(integer)强制转换。不过大多数情况下都不需要强制转换,因为当运算符、函数或流程控制需要一个整型参数时,值会自动转换。还可以通过函数intval()将一个值转换成整型。当从布尔值转换为整数值时,false将被转换为0,true将被转换为1。当从浮点数转换成整数时,将向零取整。如果浮点数超出了整数范围,则结果不确定,因为没有足够的精度把浮点数转换为确切的整数结果,在此情况下没有警告,甚至没有任何通知。注意:不要将未知的分数强制转换为整数型,这样会导致不可预料的结果。如:<?phpecho (int) ( (0.1+0.7) * 10 );  //显示7?>

    3. 转换为字符串一个值可以通过在其前面加上(string)或用str-val()函数来转变成字符串。在一个需要字符串的表达式中,字符串会自动转变。例如,在使用函数echo()或者print()时,或在一个变量和一个字符串进行比较时,就会发生这种转变类型。   

    •一个布尔型的true值被转换成字符串"1",而布尔型的false值将被转换成""(空的字符串)。这种转变可以在布尔值和字符串之间随意进行。   

    •一个整数或浮点数将被转变为数字的字面样式的字符串(包括浮点数中的指数部分),使用指数计数法的浮点数(16.1E+6)也可转变。   

    •数组转换成字符串"Array",因此,echo()和print()无法显示出数组的值。如果显示一个数组值,可以用echo $arr['foo']这种结构。   

    •资源总会被转变成"Resource id #1"这种结构的字符串,其中的1是PHP分配给该资源的独特数字。   

    •NULL总是被转变成空的字符串。

当前文章标题:类型转换

当前URL:http://www.lyjtt.cn/news/wzzz/3235.html

上一篇:特殊类型

下一篇:检测数据类型

网站建设、网络营销咨询专线:181-8386-5875(点击可一键拨号)