2012-01-23 30 views
13

¿Qué significa @param cuando se crea una clase? Por lo que yo entiendo, se usa para decir al guión qué tipo de datos son las variables y qué tipo de valor devuelve una función, ¿es así? Por ejemplo:¿Qué significa @param en una clase?

/** 
* @param string $some 
* @param array $some2 
* @return void 
*/ 

NO ES Hay otra manera de hacer eso, estoy pensando en cosas como: void function() { ... } o algo por el estilo. Y para las variables tal vez (int) $ test;

+0

Debe retirar http://manual.phpdoc.org/HTMLframesConverter/default/ – Maerlyn

+0

Ver [phpDoc] (http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg. html) para más información. – Xeoncross

Respuesta

16

@param no tiene un significado especial en PHP, por lo general se utiliza en un comentario para redactar la documentación. El ejemplo que ha proporcionado muestra eso.

Si utiliza una herramienta de documentación, recorrerá el código de @param, @summary y otros valores similares (según la sofisticación de la herramienta) para generar automáticamente una documentación con formato correcto para el código.

1

PHP es completamente ajeno a los comentarios. Se usa para describir los parámetros que usa el método solo para hacer que el código sea más legible y comprensible.

Además, el buen código de práctica se dedica a utilizar ciertos nombres (como @param), para generadores de documentación.

Algunos IDEs incluirán el @param y otra información en la información sobre herramientas cuando se usa al pasar el ratón sobre el método correspondiente.

+1

No es del todo cierto que PHP no tenga en cuenta los comentarios.La API de reflexión de PHP puede interpretar específicamente los comentarios de doc, y algunos proyectos como Doctrine los usan en gran medida para la metaconfiguración. http://www.php.net/manual/en/intro.reflection.php – redreinard

2

Como otros han mencionado, el @param al que se refiere es parte de un comentario y no es sintácticamente significativo. Simplemente está ahí para proporcionar pistas a un generador de documentación. Puede encontrar más información sobre las directivas compatibles y la sintaxis consultando el proyecto PHPDoc.

Hablando de la segunda parte de su pregunta ... Hasta donde yo sé, no hay una forma de especificar el tipo de devolución en PHP. Tampoco puede obligar a los parámetros a ser de un tipo primitivo específico (cadena, entero, etc.).

Puede, sin embargo, exigir que los parámetros sean una matriz, un objeto o un tipo específico de objeto a partir de PHP 5.1 o más.

function importArray(array $myArray) 
{ 
} 

PHP arrojará un error si intenta llamar a este método con cualquier cosa que no sea una matriz.

class MyClass 
{ 
} 

function doStuff(MyClass $o) 
{ 
} 

Si intenta llamar hacerTarea con un objeto de cualquier tipo, excepto MyClass, PHP nuevo generará un error.

0

@param es una parte del comentario de la descripción que indica cuál es el tipo de parámetro de entrada. No tiene nada que ver con la sintaxis del código. Use un editor compatible con color como Notepad ++ para ver fácilmente qué código y qué comentarios.

2

Sé que esto es antiguo, pero solo como referencia, la respuesta a la segunda parte de la pregunta es ahora, PHP7.

// this function accepts and returns an int 
function age(int $age): int{ 

    return 18; 
} 
Cuestiones relacionadas