lundi 7 juillet 2014

Creating objects from classes in PHP results with objects with same data


Vote count:

0




I have a problem with my classes. I wrote a class item. When I create objects from this class, there is no problem when creating one, but more objects results in initializing all previous objects with the data from the last one.


This is how i create the objects:



$a = new Item(1, 111, 123, "Laptop", "NOT HP ProBook 450 G1, E9Y47EA", "kom.", 1, 20500, 25000, 18, 12, 1);


So like this everything will be fine if i print it to screen ti will give the following:


Item: | 00001 | Laptop___________________ NOT HP ProBook 450 G1, E9Y47EA____________________ | Units: kom. Availability: 0001 - 20.500,00 - 25.000,00 || G: 12 months


But if I create another Item object:



$b = new Item(2, 222, 456, "DESKTOP", "blah", "kom.", 2, 41000, 46000, 18, 12, 1);


when echoing them i get:


Item: | 00002 | DESKTOP__________________ blah______________________________________________ | Units: kom. Availability: 0002 - 41.000,00 - 46.000,00 || G: 12 months


Item: | 00002 | DESKTOP__________________ blah______________________________________________ | Units: kom. Availability: 0002 - 41.000,00 - 46.000,00 || G: 12 months


As you can see, looks like they are both initialized with equal data.


Anyone, any ideas?


Thanks in advance!



require_once("item.interface.php");
require_once("../conf/numberFormat.config.php");

//class item

class Item implements iItem
{
private static $id; //int
private static $cipher; //int
private static $serialNumber; //big int
private static $name; //string
private static $description; //text
private static $unit; //measurment unit
private static $quantity; //int
private static $price; //double
private static $recomendedPrice; //double
private static $vat; //tiny int
private static $guarantee; //tiny int
private static $warehouse; //small int

//formatting
private static $decimalPoint;
private static $decimals;
private static $thousandSeparator;

public function Item($id, $cipher, $serialNumber, $name, $description, $unit, $quantity, $price, $recomendedPrice,
$vat, $guarantee, $warehouse)
{
self::$id = $id;
self::$cipher = $cipher;
self::$serialNumber = $serialNumber;
self::$name = $name;
self::$description = $description;
self::$unit = $unit;
self::$quantity = $quantity;
self::$price = $price;
self::$recomendedPrice = $recomendedPrice;
self::$vat = $vat;
self::$guarantee = $guarantee;
global $decimalPoint;
self::$decimalPoint = $decimalPoint;
global $decimals;
self::$decimals = $decimals;
global $thousandSeparator;
self::$thousandSeparator = $thousandSeparator;
self::$warehouse = $warehouse;
}

//set methods
public function setId($id)
{
self::$id = $id;
}

public function setCipher($cipher)
{
self::$cipher = $cipher;
}

public function setSerialNumber($serialNumber)
{
self::$serialNumber = $serialNumber;
}

public function setName($name)
{
self::$name = $name;
}

public function setDescription($description)
{
self::$description = $description;
}

public function setUnit($unit)
{
self::$unit = $unit;
}

public function setQuantity($quantity)
{
self::$quantity = $quantity;
}

public function setPrice($price)
{
self::$price = $price;
}

public function setRecomendedPrice($recomendedPrice)
{
self::$recomendedPrice = $recomendedPrice;
}

public function setVat($vat)
{
self::$vat = $vat;
}

public function setGuarantee($guarantee)
{
self::$guarantee = $guarantee;
}

public function setWarehouse($warehouse)
{
self::$warehouse = $warehouse;
}

//get methods
public function getId()
{
return self::$id;
}

public function getCipher()
{
return self::$cipher;
}

public function getSerialNumber()
{
return self::$serialNumber;
}

public function getName()
{
return self::$name;
}

public function getDescription()
{
return self::$description;
}

public function getUnit()
{
return self::$unit;
}

public function getQuantity()
{
return self::$quantity;
}

public function getPrice()
{
return self::$price;
}

public function getRecomendedPrice()
{
return self::$recomendedPrice;
}

public function getVat()
{
return self::$vat;
}

public function getGuarantee()
{
return self::$guarantee;
}

public function getWarehouse()
{
return self::$warehouse;
}

//other methods
public function toString()
{
global $ITEM;
return ucfirst($ITEM).": | " . sprintf("%05d", self::$id) . " | " . STR_PAD(self::$name, 25, "_") .
" <i>" . STR_PAD(self::$description, 50, "_") . "</i> | Units: ".self::$unit." Availability: " .
sprintf("%04d", self::$quantity) . " - " . self::formatPrice(self::$price) .
" - " . self::formatPrice(self::$recomendedPrice) . " || G: " . self::$guarantee .
" months";
}

public function toHTML()
{
return false;
}

private function formatPrice($input)
{
return number_format($input, self::$decimals, self::$decimalPoint, self::$thousandSeparator);
}
}


asked 21 secs ago

Dean

16





Aucun commentaire:

Enregistrer un commentaire