Šikovný pomocníček

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Filip Procházka
Moderator | 4668
+
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

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.

Filip Procházka
Moderator | 4668
+
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 :)

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;
}
Filip Procházka
Moderator | 4668
+
0
-

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

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