Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z parametrami public static
zephyr7
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 3.11.2005

Ostrzeżenie: (0%)
-----


Próbuję napisać coś na wzór frameworka,
mam funkcję, która wywołuje:

$uri[0]::$uri[1](); //np. pages::view();

jak przekazywać dodatkowe parametry?

Jeśli mój url wygląda tak: pages/view/1/2

funkcja powinna wywołać:

$uri[0]::$uri[1]($uri[2],$uri[3]);

jak poradzić sobie ze zmienną liczbą parametrów?


Do głowy przychodzi mi tylko coś takiego:


$params="";
for ($q=2;$q<count($uri)-1;$q++){
$params.='$uri['.$q.'],';
}
//usuwa przecinek.... no comment....
$params=strip_tags(substr($params,0,-1));
eval ('$uri[0]::$uri[1]('.$params.');');


będę wdzięczny za bezlitosną krytykę i pomysły, jak można napisać to po ludzku....
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zephyr7
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 3.11.2005

Ostrzeżenie: (0%)
-----


No, zagwozdka normalnie...

chciałbym tylko wywołać metodę z tyloma parametrami, ile mam w URI...

func_get_args z tego co wiem, zwraca już istniejące argumenty.

Kiedy mam w URL 2 parametry (pomijając uri[0] i [1], czyli kontroller i metodę)

chciałbym wywołać funkcję podając dwa parametry, np. $uri[0]::$uri[1]($uri[2],$uri[3]), co daje, np. page::view(2,3)

wtedy w kontrolerze mógłbym odwołać się prosto, np. function index($id,$page)...

chodzi tylko o tą przeklętą zmieniającą się liczbę argumentów
$uri[0]::$uri[1]($uri[2],$uri[3])

jeśli będę miał 1 parametr, np. pages/view/2
a funckja wywołana będzie jak wyżej, powstanie błąd "undefined index"

Mógłbym ewentualnie (co chyba jest jeszcze gorszym pomysłem)

podawać ciąg parametrów i zerować te, których nie ma w URL, np. pages/view/2

for($q=2;$q<count($uri)-1;$q++){
if (!isset($uri[$q]))$uri[$q]=0;
}

$uri[0]::$uri[1]($uri[2],$uri[3]....$uri[20])

kretyńskie, prawda?

a swoją drogą, proste i bez kombinowania.

Przecież nikt nie potrzebuje więcej, niż np. 5-10 parametrów w url
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 15:19