@property shows a "magic" property variable that is found inside the class.
datatype should be a valid PHP type or "mixed." phpDocumentor will display the optional description unmodified, and defaults to "mixed" if the datatype is not present.
The property is presumed to be available for both read and write operations. If the property is read-only, you should use the @property-read tag instead. If the property is write-only, use @property-write.
Using these "magic" tags will result in the tag info being listed in the "infomational" tag listing for the class itself. It does NOT generate actual "property" or "variable" entities in the document.
In the example above, when using PhpDocumentor with the HTML:Smarty:HandS converter and the "--parseprivate on" setting, you'll see "$_thingy" and "$_bar" shown in the "Property Summary" listing of your class variables, but you will NOT see "$regular", "$foo", or "$bar" there, because the latter three are not explicitly declared variables in your code. You WILL see "$regular", "$foo" and "$bar" in the class-level's "API Tags" listing, thanks to your "@property" tags in the class-level docblock.