为什么当我们将数字乘以字符串始终为零(0)时,在php中会发生这种情况?

时间:2018-06-20 05:08:07

标签: php

假设我们有一个字符串$str = "a";和数字$num = 2;

$str = 'a';
$num = 2;
echo $str*$num;

输出:

0

4 个答案:

答案 0 :(得分:3)

在对字符串操作数执行算术运算时,PHP将尝试将字符串转换为数字。

它通过在字符串的开头查找数字来实现,并将尝试将它们转换为值。如果没有数字,则该值为零。

(对于包含eE(科学记号)的字符串来说,这是一个极端的情况,但这在这里无关紧要。)

答案 1 :(得分:1)

好问题。 我在拼贴的时候也曾问过我的老师, 答案是。

String removeCharAt(String s, int index) {
    return s.substring(0, index).concat(s.substring(index + 1));
}

,但是我们需要继续执行so程序,使其提供0。 默认情况下,它是由代码制成的。

答案 2 :(得分:1)

简单地说,字符串将被转换为值为0的整数。这将包括大多数仅使用字母值的情况。如果您尝试在字符串的开头添加一个整数值,则理论上它将成为该值的整数。

我建议您阅读Why PHP Strings Equal ZeroComparison Operators

答案 3 :(得分:0)

也许您正在寻找str_repeat,而不是为此循环,它是php为您服务的默认值,或者您需要将A转换为integer。当您尝试计算非整数/浮点数据类型的数据时。通常,PHP自动转换变量。在某些情况下,它不会。然后我们必须手动键入强制转换