On Thu, May 8, 2008 at 3:48 PM, Matt Neimeyer <matt@xxxxxxxxxxxx> wrote: > Is there a way to tell if a function has been called that has resulted > in a call to the same function? > > We have an in-house CRM app that has a function that draws a tabbed > panel on a screen... BUT if there are sub-sub-tabbed panels we want to > invert the tab colors and panel colors... > > So... > > DrawSubTab($Set) - Black on White > Content > DrawSubTab($Set) - White on Black > Content > DrawSubTab($Set) - Black on White > Content > DrawSubTab($Set) - Black on White > Content > Etc... > > I suppose I could rewrite EVERY call to the function with a recursion > count like DrawSubTab($Set,$DepthCount+1) but that would be a MASSIVE > commit... whereas if the function can determine itself... All that > said I can't think of a good way to do it without a bastardized global > variable that track "how deep" we are and there is something that > bothers me about that approach... Unless that really is the easiest > way. you dont need a global, you can have a variable that persists throughout the request local only to the function itself using the static keyword. function doStuff() { static $callCount; if(!isset($callCount)) $callCount = 1; else $callCount++; /// do stuff w/ $callCount to potentially handle sub-tabs and stuff $callCount--; } -nathan