Всякий раз, когда новый объект класса productEntry помещается в массив $ products, последняя запись перезаписывает последнюю.
if (isset($_POST['formedit'])){
$newproduct = new productEntry;
$newproduct->productid = count($products);
$newproduct->name = $_POST['productnamefield'];
$newproduct->weight = $_POST['productweightfield'];
$newproduct->length = $_POST['productlengthfield'];
$newproduct->width = $_POST['productwidthfield'];
$newproduct->height = $_POST['productheightfield'];
$products[] = $newproduct;
}
Это вывод после однократной отправки формы:
productEntry Object ( [productid] => 0 [name] => 1 [weight] => 1 [length] => 1 [width] => 1 [height] => 1 ) productEntry Object ( [productid] => 1 [name] => 2 [weight] => 2 [length] => 2 [width] => 2 [height] => 2 ) productEntry Object ( [productid] => 2 [name] => 3 [weight] => 3 [length] => 3 [width] => 3 [height] => 3 ) productEntry Object ( [productid] => 3 [name] => 4 [weight] => 4 [length] => 4 [width] => 4 [height] => 4 )
и затем, если я отправлю форму еще раз с другими значениями
productEntry Object ( [productid] => 0 [name] => 1 [weight] => 1 [length] => 1 [width] => 1 [height] => 1 ) productEntry Object ( [productid] => 1 [name] => 2 [weight] => 2 [length] => 2 [width] => 2 [height] => 2 ) productEntry Object ( [productid] => 2 [name] => 3 [weight] => 3 [length] => 3 [width] => 3 [height] => 3 ) productEntry Object ( [productid] => 3 [name] => 5 [weight] => 5 [length] => 5 [width] => 5 [height] => 5 )