» Join Speeple | People | Groups | Blogs | News
Published: Wed, 16 July 2008, 04:40, also tagged: development, programming, php, functions, mysql, func num args
MySQL provides functionality for checking if a column or value is in a set, for example:
-- x IN(set) Example:
SELECT * FROM documents WHERE id IN(1, 20, 7, 18)
-- x NOT IN(set) Example:
SELECT * FROM documents WHERE id NOT IN(21, 5, 4, 13)
Using PHP’s function overloading we can easily emulate this method in PHP:
<?php
function in() {
if (func_num_args() < 2) return false; // Nothing to compare
$args = array_flip(array_slice(func_get_args(), 1)); // Remove first array item, flip the array so fast key lookup can be used – bypasses slow loops
return isset($args[func_get_arg(0)]); // Look up using array key – faster than using loops & less code
}
?>
Usage Examples: