> -----Original Message-----
> From: Shawn McKenzie [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, February 27, 2008 3:58 PM
> To: [email protected]
> Subject: [PHP] Re: Getting the name of a function
>
> Richard S. Crawford wrote:
> > For my own amusement, I'm writing a function that will print out detailed
> > error messages for an API that I'm creating for a minor project. One of
> the
> > pieces of information I'd like to return would be the name of the
> function
> > that called the error function. For example:
> >
> > <?php
> > function error ($message) {
> > print "The error message is $message";
> > print "The function that called the error was: [INSERT COOL CODE
> HERE]";
> > }
> >
> > function bad_function($param) {
> > error ("This is dumb");
> > return false;
> > }
> >
> > bad_function("blah");
> > ?>
> >
> > Ideally this script would print this out:
> >
> > The error message is This is dumb
> > The function that called the error was bad_function
> >
> > I know that I could pass the name of the function as a parameter to the
> > error() function (e.g. error("bad_function","This is dumb")) but I'd
> rather
> > keep it simpler than that.
> >
> > Is there a way to do this?
> >
> It's an extension but may be worth a look:
> http://us.php.net/manual/en/ref.apd.php
>
> -Shawn
Not exactly what you want, but check the use of __FUNCTION__:
function error ($message, $fn) {
print "The error message is $message";
print "The function that called the error was: $fn";
}
Function bad_function($param) {
error ("This is dumb", __FUNCTION__);
return false;
}
You can get better (and more complex) information using debug_backtrace
http://php.net/debug_backtrace. Probably doing something like:
function error ($message) {
$backtrace = debug_backtrace();
$fn = $backtrace[1]["function"];
print "The error message is $message";
print "The function that called the error was: $fn";
}
Function bad_function($param) {
error ("This is dumb);
return false;
}
Regards,
Rob
Andrés Robinet | Lead Developer | BESTPLACE CORPORATION
5100 Bayview Drive 206, Royal Lauderdale Landings, Fort Lauderdale, FL 33308 |
TEL 954-607-4207 | FAX 954-337-2695 |
Email: [EMAIL PROTECTED] | MSN Chat: [EMAIL PROTECTED] | SKYPE: bestplace |
Web: bestplace.biz | Web: seo-diy.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php