php隐性跳转,什么是隐式转换和显式转换?

用户投稿 142 0

关于“PHP隐式转换规则”的问题,小编就整理了【3】个相关介绍“PHP隐式转换规则”的解答:

什么是隐式转换和显式转换?

类型转换分为隐式转换和显式转换,他们的转换方式都对应了变换、投射、和装箱/拆箱三种类型。

当直接将一种类型赋值给另外一个类型,就是隐式转换。

系统会在编译时候进行判断,能否进行隐式转换,如果提示出错,就说明无法隐式转换,如果没有提示,这个隐式转换是成立的,并且不会出现错误;接下来就是利用上面三种方式进行转换了。

当采取显式转换时,利用诸如(int)a,convert和parse方法吧。

这时候有四种情况,一种是编译就出错,因为根本无法强制转换,另一种是可以编译通过,但是运行时候出错,还一种,就是运行也成功了,但是由于截断等原因,结果是不正确的了,最后一种当然就是转换成功喽。

其中对于(int)a,编译时候会确保是存在显示转换关系的,如果不存在,就会提示无法转换。

如果可以转换,那不会出错,但是结果不一定对,因为可能截断了部分内容;对于Int32.Parse()表示将数字的字符串转换为32 位有符号整数,属于内容转换。

只要是字符串,都可以转换过去,至于是否正确,运行过程中会提示是否出错,包括空字符串错,格式不对,或者是溢出。

一般情况下,数据的类型的转换通常是由编译系统自动进行的,不需要人工干预,所以被称为隐式类型转换。

但如果程序要求一定要将某一类型的数据转换为另外一种类型,则可以利用强制类型转换运算符进行转换,这种强制转换过程称为显式转换。

显示类型转换格式为: (强制的类型名)表达式用于强行将“表达式”的值转换成“类型名”所表示的数据类型。

例如,(int)4.2的结果是4;强制类型转换的目的是使表达式的值的数据类型发生改变,从而使不同类型数据之间的运算能够进行下去。 自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。转换规则为: 从存储范围小的类型到存储范围大的类型。具体规则为: short(char)→int→long→float→double也就是说int类型的变量可以自动转换为long类型,示例代码: int b = 10;long l = b;

隐式转换和显式转换的关键字是?

implicit关键字用于声明隐式的用户定义类型转换运算符。(explicit反之)explicit则用于显示转换用户自定义类型。

错误1无法将类型“double”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)怎么写?

这里你就要注意以下了,你报错的位置确定一个那里到底是不是真的要从double转化为int。如果不是的话,你就要好好改一下。如果是的话,按照报错信息所说,改为强制类型转换就行了。

强制类型转化是这样表示的:

int a;

double b=100;

a=(int)b

到此,以上就是小编对于“PHP隐式转换规则”的问题就介绍到这了,希望介绍关于“PHP隐式转换规则”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!