关于PHP的一点语法问题

初次接触PHP,我想使用PHP打印输出久久乘法表的第一行,如下所示:

    $i = 9;
    for($i = 1; $i <= 9; $i++) {
        echo '1 * '.$i.' = '.1*$i;
    }

发现浏览器报错,提示语法错误,
而假如我把1*$i放到一个变量里,再做拼接,则没有错误,请问这是为什么?

    $i = 9;
    for($i = 1; $i <= 9; $i++) {
        $n = 1*$i;
        echo '1 * '.$i.' = '.$n;
    }
阅读 4.1k
3 个回答
$i = 9;
for($i = 1; $i <= 9; $i++) {
    echo '1 * '.$i.' = '.(1*$i);
}

这样做,因为你不加括号的话,首先链接符号连接数字1再乘以$i,就会报错了

'.1*$i这个写法会报错,PHP认为.后面应该是个字符串或者变量,而不应该是个整型。

echo '1 * '.$i.' = '.1*$i; 报错如下
Parse error: syntax error, unexpected '.1' (T_DNUMBER), expecting ',' or ';' in F:\xampp\htdocs\test.php on line 7

如果点连接符和数字1之间没有空格,此时的点不是连接符,点和数字1之间没有空格表示0.1,此时就没有连接符了,所以语法报错。

如需对上述进行验证,可以在 “.1”前面加个.
此时语句就变成echo '1 * '.$i.' = '..1*$i;
第一个点表示连接符,第二个点是小数的简写,0.1。

使用点连接符 连接 数字需要注意,可以加空格或者括号避免此类情况出现。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏