How to create a polymorphic/"overloaded" function
<?php
function select()
{
$t = '';
$args = func_get_args();
foreach ($args as &$a) {
$t .= gettype($a) . '|';
$a = mysql_real_escape_string($a);
}
if ($t != '') {
$t = substr($t, 0, - 1);
}
$sql = '';
switch ($t) {
case 'integer':
$sql = "id = {$args[0]}";
break;
case 'string':
$sql = "name LIKE '%{$args[0]}%'";
break;
case 'string|integer':
$sql = "name LIKE '%{$args[0]}%' AND status = {$args[1]}";
break;
case 'string|integer|integer':
$sql = "name LIKE '%{$args[0]}%' LIMIT {$args[1]},{$args[2]}";
break;
default:
$sql = '1 = 2';
}
return mysql_query('SELECT * FROM table WHERE ' . $sql);
}
$res = select(29); $res = select('Anderson'); $res = select('Anderson', 1); $res = select('Anderson', 0, 5); ?>