Skip to content

Instantly share code, notes, and snippets.

@antelove19
Created August 18, 2018 13:02
Show Gist options
  • Save antelove19/280f821152bdff30db9924a9f8de1ca9 to your computer and use it in GitHub Desktop.
Save antelove19/280f821152bdff30db9924a9f8de1ca9 to your computer and use it in GitHub Desktop.
Approach 1
<?php
class A
{
function __construct()
{
$a = func_get_args();
$i = func_num_args();
if (method_exists($this, $f = '__construct' . $i)) {
call_user_func_array(array($this, $f), $a);
}
}
function __construct1($a1)
{
echo('__construct with 1 param called: ' . $a1);
}
function __construct2($a1, $a2)
{
echo('__construct with 2 params called: ' . $a1 . ',' . $a2);
}
function __construct3($a1, $a2, $a3)
{
echo('__construct with 3 params called: ' . $a1 . ',' . $a2 . ',' . $a3);
}
}
$o = new A('sheep'); echo "<br />";
$o = new A('sheep','cat'); echo "<br />";
$o = new A('sheep','cat','dog');
// results:
// __construct with 1 param called: sheep
// __construct with 2 params called: sheep,cat
// __construct with 3 params called: sheep,cat,dog
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment