php初学者日记(4)

接下来,我想继续说说类型强制转换的问题。这部分和C++中有些相似,下面的这张表总结了类型转换的操作符。

转换操作符 转换为
(array) 数组
(bool)或(boolean) 布尔型
(int)或(integer) 整数
(object) 对象
(real)或(double)或(float) 浮点数
(string) 字符串


有如下这些例子:

$score = (double) 13; // $score = 13.0
$score = (int) 14.8; //$score = 14
$sentence = "This is a sentence";
echo (int) $sentence; //returns 0

当然我们还可以将一个数据类型强制转换为数组中的一个成员。所转换的值将成为数组中的第一个成员:

$score = 1114;
$scoreboard = (array) $score;
echo $scoreboard[0];//Outputs 1114

注意不能把这个作为向数组增加项的标准做法,因为这只适合新创建数组的第一个成员。如果强制转换到一个已经存在的数组,原数组将清空,只是在第一个位置上保留这个新转换的值。关于创建数组的更多信息将在后面的章节里说明。

最后再举一个例子:任何数据类型都可以转换为对象。结果是该变量成为了对象的一个属性,该属性名为scalar,然后可以用以下的方式引用:

$model = "Toyota";
$obj = (object)$model;
print $obj->scalar;// returns "Toyota"

接下来我们说说类型自动转换的内容,还是有如下例子
1.在这里$count的变量从字符串已经被转换为整型了。

<?php 
	$total = 5;	//an integer
	$count = "15";	//a string
	$total += $count; //$total =20 (an integer)
?>

2.因为最前面的$total字符串以整数开头,所以就计算了这个值,但如果这个是非数字开头,值就为零了。

<?php
$total = "45 fire engines";
$incoming =10;
$total =$incoming +$total; //$total =55 
?>

3.在这里,为了计算if语句的值,字符串变为了boolean型了。

<?php
$total = "1.0";
 if ($total) echo "We're the same.";
 ?>

4.另外如果字符串中还有如科学计数法表示的数字的形式,php就会把它认为浮点数进行计算。

<?php
 $val1 = "1.2e3"; //1200
$val2 = 2;
echo $val1*$val2; // outputs 2400
?>

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注