PHP是弱类型的动态语言,我们已经知道了PHP的变量都存放在一个名为ZVAL的容器中, ZVAL包含了变量的类型和各种类型变量的值。 PHP中的变量不需要显式的数据类型定义,可以给变量赋值任意类型的数据, PHP变量之间的数据类型转换有两种:隐式和显式转换。
隐式类型转换
隐式类型转换也被称为自动类型转换,是指不需要程序员书写代码,由编程语言自动完成的类型转换。 在PHP中,我们经常遇到的隐式转换有:
1.直接的变量赋值操作
在PHP中,直接对变量的赋值操作是隐式类型转换最简单的方式,也是我们最常见的一种方式,或许我们已经习以为常,从而没有感觉到变量的变化。 在直接赋值的操作中,变量的数据类型由赋予的值决定,即左值的数据类型由右值的数据类型决定。 比如,当把一个字符串类型的数据赋值给变量时,不管该变量以前是什么类型的变量,此时该变量就是一个字符串类型的变量。 看一段代码:
<code><span>$string</span> = <span>"To love someone sincerel<p>5本文来源gao!daima.com搞$代!码#网#</p><pre>搞代gaodaima码
y means to love all the people, to love the world and life, too.”$integer = 10;$string = $integer;
上面的代码,当执行完第三行代码,string变量的类型就是一个整形了。通过VLD扩展可以查到第三次赋值操作的中间代码及操作数的类型,再找到赋值的最后实现为zendassigntovariable函数。这在前面的小节中已经详细介绍过了。我们这个例子是很简单的一种赋值,在源码中是直接将
以上就介绍了PHP内核探索:变量类型的转换,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。