我想上传后导入制表符分隔的文件。这种肉用以下功能完成。我试图构建一个类的实例数组。代码如下:为什么这个PHP代码不能输出属性值?
导入功能
$AddedProducts;
function importList($filename)
{
global $AddedProducts;
$AddedProducts=array();
$fileHandle = fopen($filename, "r");
$currentProduct = new productImport();
$line=fgets($fileHandle); $line=fgets($fileHandle); //throw away top 2 lines
echo '<hr>';
while(true)
{
$line = fgets($fileHandle);
if($line == null) break;
$cells=explode(' ', $line);
$i=0;
foreach($currentProduct as $ProductProperty)
{
if(isset($cells[$i]))
{
$ProductProperty = $cells[$i];
echo $i . '. ' . $cells[$i] . "<br>";
}
else return false;
$i++;
}
echo "<hr>";
$AddedProducts[]=$currentProduct;
}
fclose($fileHandle);
return true;
}
阵列输出击穿
<?
$i=0;
foreach($AddedProducts as $AddedProduct)
{
$i++;
echo "<hr>" . $i . "<br>";
foreach($AddedProduct as $key=>$value)
{
echo $key . ' = ' . $value . '<br>';
}
}
?>
已知信息
最终的数组长度/大小是正确的。 (应在文件中的行 - 2)
它并不需要特别关心有多少属性是在productImport类,只要它等同于相同数量的每行选项卡中的文件被读出。
importList功能$细胞[$ i]于其是我缺少在阵列输出的相同值回声适当的值。
该问题似乎是要么值没有被分配给属性或属性不被读取。我不知道为什么要么会出现这种情况,但我认为这是因为PHP是不是我的第一语言,而且很可能一些明显有关foreach循环;)
我使用PHP v5.2.6
这段代码有什么问题?
答:
foreach($currentProduct as $ProductProperty) becomes
foreach($currentProduct as &$ProductProperty)
请将答案作为下面的答案发布,而不是在您的问题中。你也可以接受它。 – hakre 2012-12-20 20:15:50