Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ForLoop回波放置在错误区域 呼叫对话框 # 来电者 到期_Php - Fatal编程技术网

Php ForLoop回波放置在错误区域 呼叫对话框 # 来电者 到期

Php ForLoop回波放置在错误区域 呼叫对话框 # 来电者 到期,php,Php,因此,上面的代码生成以下输出: 每当我编辑代码以添加$I+1,使最终输出为10时,会出现代码中断,并给出输出: 这是我第一次遇到这个问题。如果你能找出我做错了什么,或者我的html、打印方式等有什么问题,请告诉我。如果您对该问题有任何疑问或对某些问题感到困惑,我将尽力澄清。发生错误的原因是您对1和后面的任何内容的串联求和 很快,这就是您正在做的: <div class="row"> <div class="col-md-12"> <div

因此,上面的代码生成以下输出:

每当我编辑代码以添加
$I+1
,使最终输出为10时,会出现代码中断,并给出输出:


这是我第一次遇到这个问题。如果你能找出我做错了什么,或者我的html、打印方式等有什么问题,请告诉我。如果您对该问题有任何疑问或对某些问题感到困惑,我将尽力澄清。

发生错误的原因是您对
1
和后面的任何内容的串联求和

很快,这就是您正在做的:

<div class="row">
    <div class="col-md-12">
        <div class="box">
            <div class="box-header">
                <h3 class="box-title">Call Dialog</h3>
            </div>
            <!-- /.box-header -->
            <div class="box-body table-responsive no-padding">
                <table class="table table-hover">
                    <tbody>
                        <tr>
                            <th>#</th>
                            <th>Callers</th>
                            <th>Expiration</th>
                        </tr>
                        <?php
                            $calls = array();
                            for ($i = 0; $i < 10; $i++) {
                                $template = "
                                    <tr>
                                        <td>". $i ."</td>
                                    </tr>
                                ";

                                echo $template;
                            }
                        ?>
                    </tbody>
                </table>
            </div>
            <!-- /.box-body -->
          </div>
    </div>
</div>
这将与以下内容相同:

echo 'a string' . $i + 1 . 'another string';
(不以数字开头的字符串将自动转换为
0
。所有其他字符串将被截断为数字。
'9a'
将在求和前转换为
9
,而
'a9'
将转换为
0

如何解决此问题:

  • 使用括号:

    将操作括在括号中可避免将其串联

    一个基本的例子:

    echo 0 + 1;
    
    echo 'Your string has ' . ($length + 1) . ' characters';
    
  • 使用COMA而不是连接:

    这将避免任何问题,并将大大加快代码的速度

    这是一个已知的微观优化

    使用基本示例:

    echo 0 + 1;
    
    echo 'Your string has ' . ($length + 1) . ' characters';
    

使用最适合您的解决方案。

请将php和html分开。这很简单,会为你节省很多时间。很好用

echo 'Your string has ', $length + 1, ' characters';


那是因为
$i+1。”字符串'==1
@IsmaelMiguel Oh。。oopsies从来不知道连接会产生布尔值。实际上,它不是布尔值。如果您输入
+8
,结果将显示
8
。第一部分转换为
0
,而第二部分转换为
1
。和
0+1==1
@IsmaelMiguel哦,我明白了。从不知道PHP的全部逻辑。我将尝试做一些研究,以进一步解决类似这样的问题。感谢您的帮助和详细解释。:)不客气。谢谢你接受了答案。你的解决方案显然是有效的,但通常更难阅读。我真的会避免这样。