0
<?php
    $data="98.8degrees"; 
    (double)$data; 
    (int)$data; 
    (string)$data; 
    echo $data; 
?>

当实际输出为 98.8 度时,我感到惊讶/困惑

我想当 $data 使用 (double) 时,它会转换为 98.8。然后当移动到 (int) 时,它变成了 98 来回但我想我的类比是错误的。有人可以向我解释一下输出是如何变成这样的吗?

4

3 回答 3

1

正在做

(double)$data; 
(int)$data; 
(string)$data; 

只返回double,intstring值,但它们不会改变。要更改它们,您需要将返回值分配给实际变量,如下所示:

$data = (double)$data; 
$data = (int)$data; 
$data = (string)$data; 
于 2013-06-18T02:41:27.667 回答
0

你继续施放它,但转身丢弃结果。中的值$data永远不会改变。试试这个settype()功能。

于 2013-06-18T02:39:32.417 回答
0

你可能打算做的是:

<?php
    $data="98.8degrees"; 
    $data=(double)$data; 
    $data=(int)$data; 
    echo $data; 
?>

如果你不保留你的操作结果,你将看不到你的操作结果......

哦 - 我不知道你希望通过

(string)$string;

声明,因为不清楚您是否/如何定义$string...

于 2013-06-18T02:40:58.817 回答