Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the meaning of @var in php comments

Tags:

I see this (@var) in php comments a lot and have no clue what it means. Please tell.

// example.php (taken from yii framework application code)  <?php /* @var $this CategoriesController */ /* @var $data Categories */ ?>  <div class="view">      <b><?php echo CHtml::encode($data->getAttributeLabel('idCategory')); ?>:</b>     <?php echo CHtml::link(CHtml::encode($data->idCategory), array('view', 'id'=>$data->idCategory)); ?>     <br /> </div> 
like image 742
eric Avatar asked Aug 28 '12 12:08

eric


People also ask

What does @VAR mean in PHP?

The var keyword in PHP is used to declare a property or variable of class which is public by default. The var keyword is same as public when declaring variables or property of a class.

What are the two types of comment tags in PHP?

PHP has two built-in ways of commenting: single-line comments and multiline comments.

How do I comment out a block of PHP code?

Answer: Use the Syntax "// text" and "/* text */" Comments are usually written within the block of PHP code to explain the functionality of the code.

What is a correct way to add a comment in PHP?

PHP supports both one-line and multi-line comments. A one-line comment starts with the # or // . A multi-line comment starts with /* and end with */ .


2 Answers

You may use the @var tag to document the data type of class variables.

The datatype should be a valid PHP type (int, string, bool, etc), a class name for the type of object, or simply "mixed". phpDocumentor will display the optional description unmodified, and defaults to "mixed" if the datatype is not present

https://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags.var.pkg.html

With the @var tag it is possible to document the type and function of a class property. When provided it MUST contain a Type to indicate what is expected; the description on the other hand is OPTIONAL yet RECOMMENDED in case of complicated structures, such as associative arrays.

The @var tag MAY have a multi-line description and does not need explicit delimiting.

It is RECOMMENDED when documenting to use this tag with every property.

This tag MUST NOT occur more than once per property in a PHPDoc and is limited to Structural Elements of type property.

Example:

class DemoVar {    /**     * Summary     *     * @var object Description     */    protected $varWithDescriptions;     /**     * @var \DemoVar $instance The class instance.     */    protected static $instance;     /**     * Summary for varWithWrongType     *     * @var boolean The varWithWrongType. Boolean will be put in the type.     */    protected $varWithWrongType = array(); } 
like image 119
CosminO Avatar answered Dec 19 '22 08:12

CosminO


They are PHPdoc comments and are generally used for IDE-typehinting/code completion (also sometimes documentation-generation, but not in this scenario). They have no relevance on the application itself and can be removed without incident.

like image 27
Lusitanian Avatar answered Dec 19 '22 07:12

Lusitanian