Speeple » Join Speeple | People | Groups | Blogs | News

Speeple Core

Tagged Func Get Args

Page 1 of 1

  1. PHP Argument Overload via func_num_args() and func_get_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:

    Continue Reading »