Я пытаюсь импортировать файл с разделителями табуляции после загрузки. Мясо этого сделано со следующей функцией. Я пытаюсь создать массив экземпляров классов. Код следует:
Функция импорта
$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)