代码之家  ›  专栏  ›  技术社区  ›  Gufran Hasan

为什么在php中,当我们用一个字符串乘以它总是给出零(0)时,会发生这种情况?

php
  •  0
  • Gufran Hasan  · 技术社区  · 6 年前

    假设我们有一根绳子 $str = "a" ;和编号 $num = 2 (二)

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

    输出:

    0

    4 回复  |  直到 6 年前
        1
  •  3
  •   Robby Cornelissen    6 年前

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

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

    (对于包含 e E (科学记数法),但这里不相关。)

        2
  •  1
  •   Prasanna Mane    6 年前

    好问题。 我在大学的时候也问过我的老师, 答案是。

    String * int= infinity; //According to scientific calculator answer is infinity.
    

    但我们需要继续我们的SO程序,它提供0。 默认答案是由代码生成的。

        3
  •  1
  •   Fredrik    6 年前

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

    我建议你读 Why PHP Strings Equal Zero Comparison Operators

        4
  •  0
  •   Evinn    6 年前

    也许你在找 str_repeat ,而不是为此执行循环,它是PHP为您提供的默认值,或者您需要强制转换 A 变为整数。当您尝试对不属于integer/float数据类型的数据进行计算时。通常PHP会自动类型化变量。在某些情况下不会。然后我们必须手工输入