1

(在PHP中)这是我的问题,我想在我的类中初始化一个数组,让构造函数填充它,然后我可以在其他函数中使用数组的变量..当我在构造函数中回显我的数组时,它工作得很好,但是当我尝试在另一个函数中呼应它时,它给了我一些非常不同的东西。

class myProblem
{
    public $phaseArray;

    function myProblem()
    {
        $count1 = 0;
        $metaFile = fopen( 'MyFile.txt', 'r' ) or exit( "Unable to open file!" );
        while( !feof( $metaFile ) )
        {
            $this->phaseArray[0][$count1] = 0;
            $this->phaseArray[1][$count1] = fgets( $metaFile );
            echo $this->phaseArray[1][$count1], $count1, '</br>'; //this part displays well
            $count1++;
        }
        close( $metaFile );
    }

    function displayError()
    {
        foreach( $this->phaseArray as $key => $value )
        {
            echo $key, $value, '</br>'; //this part does not show up correctly
        }
        echo $this->phaseArray[0][2]; //this part does not show up correctly
        echo $this->phaseArray[1][1]; //this part does not show up correctly
    }
}

对缩进感到抱歉,我无法让它工作。正确的打印输出是(来自构造函数);0苹果 1橙 3梨 4草莓

但显示第二个功能;0阵列 1阵列

0阵列 0阵列

关于我做错了什么的任何想法?感谢您的时间!

4

1 回答 1

1

它的显示方式是正确的,您可以决定它是否错误,您如何填充它或您如何从中读取数据

您正在创建一个二维数组,其中第二维也是一个数组。所以当你想输出所有第二维的项目时,通过另一个foreach循环它:

foreach( $this->phaseArray as $key => $values ) {
  foreach( $values as $value ) {
    echo $key, $value, '</br>'; //this part show up correctly
  }
}

如果您想知道数组的结构,可以使用以下命令轻松打印出来:

echo "<pre>";
var_dump( $aVar );
echo "</pre>";
于 2012-06-13T17:06:50.733 回答