如何防止整数被视为字符串

时间:2016-08-27 18:42:40

标签: php

我有以下代码:

$number = 1;

while ($row=mysqli_fetch_array($result)){
    $pageID = $row[0];
    $pageName = $row[1];
    $timeStamp = $row[5];

    echo "
        <tr>
            <td>
                $number;
                $number++;
            </td>
            <td><a href=\"./lib/viewpage.php?pageID=$pageID\" target=\"_blank\">$pageName</a></td>
            <td>$timeStamp</td>
        </tr>";
    }

我想知道是否有办法让每行的数字增加1,我发现上面的解决方案使用&#34; $ integer ++&#34;方法。但是,因为我在引号中有它,所以它被视为字符串而不是小数。你怎么纠正这个?

我是PHP新手!

3 个答案:

答案 0 :(得分:1)

只需将加法运算符移到引号之外,只包含set变量。这意味着您必须设置&#34; $ number = 0;&#34;

像这样:

while ($row=mysqli_fetch_array($result)){
    $pageID = $row[0];
    $pageName = $row[1];
    $timeStamp = $row[5];

    $number;
    $number++;

    echo "
        <tr>
            <td>
                $number
            </td>
            <td><a href=\"./lib/viewpage.php?pageID=$pageID\" target=\"_blank\">$pageName</a></td>
            <td>$timeStamp</td>
        </tr>";
}

答案 1 :(得分:1)

类似于Rahul Mankar的答案 用

替换该部分
<td>".($number++)."</td>

$number++将首先回显数字的值,然后加1 顺便说一句:虽然这样可以解决问题,但我并不建议将增量器放在回声中间

答案 2 :(得分:0)

在你的代码中,$ number被视为一个字符串,因为它在echo语句中。整个echo语句都有一个双引号字符串。只需用数字连接字符串即可。所以写得很明智:

$number = 1;
while ($row=mysqli_fetch_array($result)){
    $pageID = $row[0];
    $pageName = $row[1];
    $timeStamp = $row[5];
    echo "
        <tr>
            <td>".
                $number;
                $number++;
            ."</td>
            <td><a href=\"./lib/viewpage.php?pageID=$pageID\" target=\"_blank\">$pageName</a></td>
            <td>$timeStamp</td>
        </tr>";
}