<p>Languages like C and even C# (which technically doesn't have a preprocessor) allow you to write code like:</p>

<pre><code>#DEFINE DEBUG
...

string returnedStr = this.SomeFoo();
#if DEBUG
    Debug.WriteLine("returned string =" + returnedStr);
#endif
</code></pre>

<p>This is something I like to use in my code as a form of scaffolding, and I'm wondering if PHP has something like this. I'm sure I can emulate this with variables, but I imagine the fact that PHP is interpreted in most cases will not make it easy to strip/remove the debugging code (since its not needed) automatically when executing it.</p>

PHP doesn't have anything like this. but you could definitely whip up something quickly (and perhaps a regex parse to strip it out later if you wanted). i'd do it as such:
```
```
define('DEBUG', true);
...
if (DEBUG):
  $debug->writeLine("stuff");
endif;
```
```
of course you'd have to write your own debug module to handle all that. if you wanted to make life easier on regex parsing, perhaps you could use a ternary operator instead:
```
```
$str = 'string';
DEBUG ? $debug->writeLine("stuff is ".$str) : null;
```
```
which would make removing debug lines pretty trivial.