Revisa este ejemplo:
Código PHP:
Ver original<?php
class Query
{
private $_limit;
private $_offset;
private $_query;
public function __construct()
{
$this->_query = 'SELECT * FROM foo';
}
public function limit($results)
{
$this->_query .= " LIMIT $results";
return $this;
}
public function offset($results)
{
$this->_query .= " OFFSET $results";
return $this;
}
public function __toString()
{
return $this->_query;
}
}
$query = new Query();
$query1 = clone $query;
$query2 = clone $query;
$query3 = clone $query;
echo $query1->limit(10); // SELECT * FROM foo LIMIT 10
echo $query2->offset(10); // SELECT * FROM foo OFFSET 10
echo $query3->limit(10)->offset(10); // SELECT * FROM foo LIMIT 10 OFFSET 10
Saludos.