Re: Determining an external function/method's argument/parameter listing..?
| From: | Jacob Kruger | Date: | Tue, 12 Jun 2012 18:06:56 +0000 |
| Subject: | Re: Determining an external function/method's argument/parameter listing..? | ||
| References: | 1 2 | Groups: | php.windows |
| Request: | Send a blank email to php-windows+get-30910@lists.php.net to get a copy of this message | ||
Ok, thanks for that referral.
The following code shows a bit of a simple usage of the reflectionMethod class, on a quickly generated test class and one of it's methods:
<?php
class myClass
{
public function __init() {
}//end of __init
public function anything($sVar1 = "5") {
}//end of anything function
}//end of myClass
$className = "myClass";
$methodName = "anything";
$r = new ReflectionMethod($className, $methodName);
$params = $r->getParameters();
echo "<ul>\n";
foreach ($params as $param)
{
echo "<li><ul>\n";
echo "<li>parameter: " . $param->getName() . "</li>\n";
echo "<li>allowsNull: " . strval($param->allowsNull()) . "</li>\n";
echo "<li>optional: " . strval($param->isOptional()) . "</li>\n";
if ($param->isOptional()) { echo "<li>defaultValue: " . $param->getDefaultValue() . "</li>\n"; }
echo "</ul></li>";
}
echo "</ul>\n";
?>
Stay well
Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'
----- Original Message ----- From: "Toby Hart Dyke" <toby@hartdyke.com>
To: "'Jacob Kruger'" <jacob@blindza.co.za>
Sent: Tuesday, June 12, 2012 5:35 PM
Subject: RE: [PHP-WIN] Determining an external function/method's argument/parameter listing..?
You need to take a look at reflection in the PHP manual (http://www.php.net/manual/en/book.reflection.php). From the introduction: "PHP 5 comes with a complete reflection API that adds the ability to reverse-engineer classes, interfaces, functions, methods and extensions. Additionally, the reflection API offers ways to retrieve doc comments for functions, classes and methods." Sounds like what you're looking for. Toby -----Original Message----- From: Jacob Kruger [mailto:jacob@blindza.co.za] Sent: Tuesday, June 12, 2012 10:38 AM To: php-windows@lists.php.net Subject: [PHP-WIN] Determining an external function/method's argument/parameter listing..? If I managed to determine that a ffunction/method exists for an external class, by finding it in the array returned by the get_class_methods('className') function, but, then how would I determine the required/possible parameters for one of those functions/methods..? Inside a function itself you can call something like func_get_args() but that is, I think, meant to return a list of passed arguments/parameters, and can only be called from inside a function itself, whereas, I would like to possibly determine what arguments/parameters a function expects/requires, hopefully then at least being able to derive from the names what types/values they then expect..? In other words, would like to find some way to find out the sort of function definition etc. And, yes, it would be nice to have a look at the source code am referring to, but in this specific case, it seems like it might not be best to ask too many questions...<smile> Stay well Jacob Kruger Blind Biker Skype: BlindZA '...fate had broken his body, but not his spirit...'