Šikovný pomocníček

před 10 lety

Filip Procházka
Moderator | 4693
+
0
-

Zdravím,

Mám z téhle funkcičky takovou radost, že se musím hned podělit :)
Číslování stavů je od nuly kvůli tomu, že používám v databázi stavy 0 nebo 1,
teď to můžu jednoduše rozšiřovat o další :)

<?php
function mst()
{
    $pos = func_get_arg(0);
    $args = func_get_args();
    $key = (gettype($pos)=='boolean'?($pos?1:2):intval($pos)+1);
    return (array_key_exists($key, $args)?$args[$key]:Null);
}

echo mst(0, 'State0', 'State1', 'State2', 'State3'); # vrátí State0
echo mst(1, 'State0', 'State1', 'State2', 'State3'); # vrátí State1
echo mst(3, 'State0', 'State1', 'State2', 'State3'); # vrátí State3
echo mst(True, 'true'); # vrátí true
echo mst(False, 'true'); # vrátí Null

?>

takhle pozdě v noci tohle ale byla poslední věc co jsem vymyslel, co mě teď trápí je jestli ‚mst‘ (match-state) sedí jako název nebo by se víc hodilo něco jiného

před 10 lety

pmg
Člen | 372
+
0
-

Lepší by asi bylo používat v databázi enum. Jestli hodláš stavy přidávat, lepší by bylo používat vztah 1:N a uložit si stavy do zvláštní tabulky.

před 10 lety

Filip Procházka
Moderator | 4693
+
0
-

Já tohle používám na statický vypisování,
třeba ikonek u dat z tabulky,
což dělám maximálně na jednom místě a nechci to mít v databázi :)

před 10 lety

pmg
Člen | 372
+
0
-
function match_state($key, $args)
{
    if (!is_array($args)) {
        $args = func_get_args();
        array_shift($args);
    }
    $key = (int) $key;
    return isset($args[$key]) ? $args[$key] : NULL;
}

před 10 lety

Filip Procházka
Moderator | 4693
+
0
-

parada :D to je dokonce ještě víc sexy :)

Editoval HosipLan (14. 8. 2009 11:22)