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
rodia
post
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 5
Dołączył: 29.07.2008

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



  1. function hello()
  2. {
  3. $num = func_num_args();
  4. $args = func_get_args();
  5.  
  6. foreach ($args as $arg)
  7. echo $arg.'<br>';
  8. }


Powyższe rozwiązanie odbiera zmienną ilość argumentów, jednak problemem jest wywołanie tej funkcji z różną ilością argumentów - bo ciężko jest to już zrobić z automatu.

Czy nie lepiej mając URL w postaci jak autor pisał:
  1.  
  2. $url = 'a/b/c/d';


zamienić to na tablicę i wywolać funkcję przetwarzającą URL?
  1. executeURL(explode('/', $url));


a funkcja ta przyjmowałaby zawsze tylko jeden argument, którym byłaby tablica o dowolnej ilości parametrów z URLa
  1.  
  2. function executeURL($args)
  3. {
  4. foreach ($args as $arg)
  5. echo $arg.'<br>';
  6. }
  7.  


Pozdrawiam, R.


Ten post edytował rodia 27.12.2010, 16:11:16
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 - 23:22