我想上傳後導入製表符分隔的文件。這種肉用以下功能完成。我試圖構建一個類的實例數組。代碼如下:爲什麼這個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