Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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/0/amazon-s3/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 设置变量的函数调用不';行不通_Php - Fatal编程技术网

Php 设置变量的函数调用不';行不通

Php 设置变量的函数调用不';行不通,php,Php,下面的代码是在建议使$i$j运行良好后修改的 <?php $i=1; $j=1; function fixIndex() { global $i, $j; $a=$j-$i; if ($a === 60){ $i += 60; } $j++; } 您可以使用“按引用传递”来避免在此处使用全局变量。这意味着函数将修改传递给它的变量 另外,我将“$I+5”(这不会导致任何事情发生)更改为“$I+=5”,以便它修改变量$I。您没有

下面的代码是在建议使$i$j运行良好后修改的

<?php
$i=1;
$j=1;

function fixIndex() {
    global $i, $j;
    $a=$j-$i;
    if ($a === 60){
        $i += 60;
    }
    $j++;
}

您可以使用“按引用传递”来避免在此处使用全局变量。这意味着函数将修改传递给它的变量



另外,我将“$I+5”(这不会导致任何事情发生)更改为“$I+=5”,以便它修改变量$I。

您没有存储增量值
$I

<?php
   $i=1;
   $j=1;
   function fixIndex() {
   global $i, $j;
   if ($j - $i == 5){
   $i = $i+5;
   }
   $j++;
   }
   for ($k=0;$k<=20; $k++){
   fixIndex();
   echo $i.'<br />';
   echo $j.'<br />';    
   }

您可能可以这样描述您想要做的事情:
每次$j增加5时,$i增加5”
这可以以这样一种简单而紧凑的形式实现。
(解决方案涵盖所有情况,并不取决于迭代的上限。)


$i+5
实际上没有什么作用,除非您打算用该值更新$i-
$i=$i+5。。。。您编写的代码确实在运行,但它对$i的计算结果没有任何作用+5@Felix黄:我看到你开始了一个新问题,因为你的第一个问题已经作为重复问题结束了。在我看来,这有点言之过早,如果仔细看一看,它并不是一个真正的复制品。我再次尝试理解您真正希望代码执行的操作,并再次添加了答案。感谢您提供此代码。它可以自己工作。但是它对我的主代码不起作用我的主代码如下:有点悬念,有更多的代码吗?
<?php
   function fixIndex(&$i, &$j) {
       global $i, $j;
       if ($j - $i == 5) {
           $i += 5;
       }
       $j++;
   }


   $i=1;
   $j=1;

   for ($k=0;$k<=20; $k++){
       fixIndex($i, $j);
       echo $i.'<br />';
       echo $j.'<br />';    
   }
?>
<?php
   $i=1;
   $j=1;
   function fixIndex() {
   global $i, $j;
   if ($j - $i == 5){
   $i = $i+5;
   }
   $j++;
   }
   for ($k=0;$k<=20; $k++){
   fixIndex();
   echo $i.'<br />';
   echo $j.'<br />';    
   }
<?php
    function fixIndex(&$i,$j) {
        if ( ($j>1) && (($j-1) % 5 == 0) ) $i += 5;
    }
    $i = 1;
    for ($j=1;$j<=20; $j++){
        fixIndex($i,$j);
        echo "\$j=$j, \$i=$i  <br />";
    }