What's the meaning of @var in php comments

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();
}

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.


It is in an inline type hint.

e.g.

/* @var bool */
$switch

In this case it means $this is of type CategoriesController and $data is of type Categories

Often used by IDEs for type hinting.

Tags:

Php