(在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
}
}
对于缩进感到抱歉,我无法让它工作。 正确的打印输出(来自构造函数); 0Apple 1Orange 3Pear 4Strawberry
但显示第二个功能; 0Array 1Array
0Array 0Array
对我做错了什么的任何想法?谢谢你的时间!
答案 0 :(得分:1)
它的显示方式是正确的,您可以决定填写它的方式是否错误或者您是如何从中读取数据的
您正在创建一个包含2个维度的数组,其中第二个维度也是一个数组。因此,当您想要输出第二维的所有项时,将其循环通过另一个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>";