<?php
class Set
{
public function __construct(array $spec, $arg1 = null, $arg2 = null)
{
if (isset($spec[0]) && is_array($spec[0]) {
// was called like Set::createFromArray([['foo'=>'bar'], false, 64]);
} else {
// was called like new Set(['foo'=>'bar'], false, 64)
}
}
}
class SetFactory
{
public function create(array $map, $arg1, $arg2)
{
return new Set($map, $arg1, $arg2);
}
public function createFromArray(array $spec)
{
return new Set($spec);
}
}