PHP $ variable ++不工作:(

use*_*625 -1 php syntax foreach operators

我有这个代码:

$arrayOfData = array("Data1", "Data2", "Data3", "Data4", "Data5", "Data6", "Data7", "Data8", "Data9");

var $dataCounter = 0;
var $setCounter = 1;

foreach($arrayOfData as $row => $value){

    $this->$dataCounter++;

    if($this->$dataCounter == 3){
      $this->$setCounter++;
      $this->$dataCounter = 0;
    }


}
Run Code Online (Sandbox Code Playgroud)

当我转到$ this - > $ setCounter时,我得到的全部是0.我使用PHP 4,我的语法是否正确?我的foreach是在一个类中的函数内部.我的变量在课堂内.

Joh*_*nde 5

因为这似乎不在一个类中,不,它是不正确的.$this->是不必要的和不正确的,因为你的使用var.

var $setCounter = 1;
// ...
$this->$setCounter++;
Run Code Online (Sandbox Code Playgroud)

只需要:

$setCounter = 1;
// ...
$setCounter++;
Run Code Online (Sandbox Code Playgroud)

这同样适用于 $dataCounter

编辑

如果您正在使用课程,那么您

  1. 应该var $dataCounter = 0; var $setCounter = 1;超出你的方法.

  2. 改变$this->$setCounter++;$this->setCounter++;

  • 这是正确的解决方案.另外需要注意的是,当你在php中引用类属性时你不使用变量运算符来执行此操作,正确的语法将是$ this-> setCounter ++而不是$ this - > $ setCounter如果你在一个类中 (2认同)