![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 505 Pomógł: 0 Dołączył: 8.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam, pisze sobie drobny skrypt do analizy skladni i budowy funkcji , narazie mam cos takiego :
wynik otrzymamy taki Kod Array ( [0] => function prefix_foo($input, $param_1 = 'value_1', $param_2 = 'va)lue,2', $param_3 = 345, $param_4) [1] => prefix_foo [2] => $input, $param_1 = 'value_1', $param_2 = 'va)lue,2', $param_3 = 345, $param_4 [3] => $param_4 ) gdzie [1] => nazwa funkcji [2] => parametry [3] => nie wiem skad sie to wzielo :/ i teraz nie mam pomyslu jak rozbic parametry na tablice, tak by okreslic czy parametr jest wymagany, czy opcjonalny z domyslna wartoscia. Ten post edytował Bastion 22.04.2006, 11:54:27 -------------------- /dev/blog : http://www.santyago.pl/
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
rozbij przez explode po przecinkach i sprawdzaj poszczegulne elementy pod kątem wystepowania w nich znaku równości, jeśli występuje to parametr jest opcjonalny, jeśli nei to obowiązkowy
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 505 Pomógł: 0 Dołączył: 8.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
nie bardzo sie to sprawdzi przy parametrze :
$param_2 = 'va)lue,2' added: a moze istnieje jakis gotowy sposob oferowany przez php jesli znam nazwe funkcji Ten post edytował Bastion 22.04.2006, 12:18:11 -------------------- /dev/blog : http://www.santyago.pl/
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Nie odkrywasz ponownie kola?
(php >= 5) http://www.php.net/manual/en/language.oop5.reflection.php Cytat The ReflectionFunction class lets you reverse-engineer functions. <?php class ReflectionFunction implements Reflector { final private __clone() public object __construct(string name) public string __toString() public static string export(string name, bool return) public string getName() public bool isInternal() public bool isUserDefined() public string getFileName() public int getStartLine() public int getEndLine() public string getDocComment() public array getStaticVariables() public mixed invoke(mixed args) public mixed invokeArgs(array args) public bool returnsReference() public ReflectionParameter[] getParameters() public int getNumberOfParameters() public int getNumberOfRequiredParameters() } ?> Cytat The ReflectionParameter class retrieves information about a function's or method's parameters.
<?php class ReflectionParameter implements Reflector { final private __clone() public object __construct(string name) public string __toString() public static string export(mixed function, mixed parameter, bool return) public string getName() public bool isPassedByReference() public ReflectionFunction getDeclaringFunction() public ReflectionClass getDeclaringClass() public ReflectionClass getClass() public bool isArray() public bool allowsNull() public bool isPassedByReference() public bool getPosition() public bool isOptional() public bool isDefaultValueAvailable() public mixed getDefaultValue() } ?> -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 505 Pomógł: 0 Dołączył: 8.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
trudno wymagac od programisty aby uzywal "\," ...
dr_boonzo : idealne ![]() ![]() Ten post edytował Bastion 22.04.2006, 12:29:30 -------------------- /dev/blog : http://www.santyago.pl/
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Tylko ze to dziala dla przeparsowanych funkcjach a nie na kodzie zrodlowym -- ale wystarczy eval()'nac zrodla i zastosowac refleksje.
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 505 Pomógł: 0 Dołączył: 8.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
dr_bonzo : idealne
![]() -------------------- /dev/blog : http://www.santyago.pl/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:17 |