I have two classes called Edge and Graph, I need to send set of edge objects (out side those classes) to Graph object by looping and retrieve from Graph Object.
Graph Class
class Graph
{
/**
* Array of edge objects
*
* @var array
*/
protected $edges;
/**
* Set edges of the graph
*
* @param Edge edge object
*/
public function __construct(Edge $edge)
{
$this->setEdges($edge);
}
/**
* Get edges
*
* @return array array of edge objects
*/
public function getEdges()
{
return $this->edges;
}
/**
* Set Edges
*
* @param Edge Edge object
*/
public function setEdges(Edge $edge)
{
$this->edges[] = $edge;
}
}
Looping through edges,
$edges = array(
array("point1" => "a", "point2" => "b", "value" => 7),
array("point1" => "a", "point2" => "c", "value" => 9),
array("point1" => "a", "point2" => "f", "value" => 14.00)
)
$graph = null;
foreach ($edges as $edge) {
$edgeObj = new Edge($edge['point1'], $edge['point2'], $edge['value']);
$graph = new Graph($edgeObj);
}
But $graph returns only last Edge object, I know it's because I overwrite $graph. What am I doing wrong ?