Comments

<?phpecho 'This is a test'; // This is a one-line c++ style comment /* This is a multi line comment yet another line of comment */echo 'This is yet another test'; echo 'One Final Test'; # This is a one-line shell-style comment?>

The "one-line" comment styles only comment to the end of
the line or the current block of PHP code, whichever comes first.
This means that HTML code after // ... ?>
or # ... ?> WILL be printed:
?> breaks out of PHP mode and returns to HTML mode, and
// or # cannot influence that.
If the asp_tags configuration directive
is enabled, it behaves the same with // %> and
# %>.
However, the </script> tag doesn't break out of PHP mode in
a one-line comment.

<h1>This is an <?php # echo 'simple';?> example</h1><p>The header above will say 'This is an example'.</p>

'C' style comments end at the first */ encountered.
Make sure you don't nest 'C' style comments. It is easy to make this
mistake if you are trying to comment out a large block of code.

<?php/* echo 'This is a test'; /* This comment will cause a problem */*/?>

User Contributed Notes 11 notes

Notes can come in all sorts of shapes and sizes. They vary, and their uses are completely up to the person writing the code. However, I try to keep things consistent in my code that way it's easy for the next person to read. So something like this might help...

Comments in PHP can be used for several purposes, a very interesting one being that you can generate API documentation directly from them by using PHPDocumentor (http://www.phpdoc.org/).

Therefor one has to use a JavaDoc-like comment syntax (conforms to the DocBook DTD), example:<?php/*** The second * here opens the DocBook commentblock, which could later on<br>* in your development cycle save you a lot of time by preventing you having to rewrite<br>* major documentation parts to generate some usable form of documentation.*/?>Some basic html-like formatting is supported with this (ie <br> tags) to create something of a layout.

it's perhaps not obvious to some, but the following code will cause a parse error! the ?> in //?> is not treated as commented text, this is a result of having to handle code on one line such as <?php echo 'something'; //comment ?>

<?phpif(1==1){//?>}?>

i discovered this "anomally" when i commented out a line of code containing a regex which itself contained ?>, with the // style comment.e.g. //preg_match('/^(?>c|b)at$/', 'cat', $matches);will cause an error while commented! using /**/ style comments provides a solution. i don't know about # style comments, i don't ever personally use them.

a trick I have used in all languages to temporarily block out large sections (usually for test/debug/new-feature purposes), is to set (or define) a var at the top, and use that to conditionally comment the blocks; an added benefit over if(0) (samuli's comment from nov'05) is that u can have several versions or tests running at once, and u dont require cleanup later if u want to keep the blocks in: just reset the var.

personally, I use this more to conditionally include code for new feature testing, than to block it out,,,, but hey, to each their own :)

this is also the only safe way I know of to easily nest comments in any language, and great for multi-file use, if the conditional variables are placed in an include :)

for example, placed at top of file:

<?php $ver3 = TRUE; $debug2 = FALSE; ?>

and then deeper inside the file:

<?php if ($ver3) { print("This code is included since we are testing version 3"); }?>