2016-09-21 60 views
0

在PHP计算我做一个简单的计算,而是用绳子PHP:是用绳子可靠

$num_1 = '200.50'; (string) 
$num_2 = '100.50'; (string) 

echo $num_1 - $num_2 

结果如预期100.00

我想知道的是,我没有投值浮动,仍然得到正确的结果。
而我的问题是如果这种(字符串)计算是可靠的?

+1

它被称为“PHP类型杂耍”。你的两个字符串在数字上下文中使用,所以它们被转换为浮点数。 – Rizier123

+0

试试看看---> echo gettype($ num_1 - $ num_2); // double –

+0

PHP autocasts变量。当您尝试对字符串var进行数学运算时,它会转换为整数。同样,如果你尝试对一个int进行字符串操作,它将变成一个字符串$ a = 2; $ b = $ a。'我现在是一个字符串'; echo $ b; //“2我现在是一个字符串” –

回答

1

如果在字符串中使用数字,这是可靠的。如果您使用字母字符,特殊字符或您在基本数学中不会期望的其他内容,则可能会得到意想不到的结果。

要了解更多关于您可以预期的行为以及如何预防问题的信息,请参阅PHP文档以了解类型杂耍。

http://php.net/manual/en/language.types.type-juggling.php

+0

嗨,大家好 - 快速解答 - 超级。 Rizier123是第一个,但Goose给出了最完整的答案。所以我接受他的回答 - 好吗? – Ben

+0

鹅 - 漂亮的网站;-) – Ben