Pregunta

Estoy utilizando PHP 5 ahora y estoy exuberante utilizar programación orientada a objetos en PHP 5. Me encuentro con un problema. Tengo unos pocos clases y funciones dentro de ellos. Algunas funciones requieren argumentos que se pasarán las cuales son objeto de esas clases que escribí yo mismo. Los argumentos no se escriben estrictamente lo he notado. ¿Hay una manera de hacer que sea estrictamente escrito de manera que en tiempo de compilación que podría utilizar Intellisense?

Ejemplo:

class Test
{
   public $IsTested;

   public function Testify($test)
   {
      //I can access like $test->$IsTested but this is what not IDE getting it
      //I would love to type $test-> only and IDE will list me available options including $IsTested
   }
}
¿Fue útil?

Solución

Bueno, usted podría usar insinuando para hacer lo que quiera :

public function Testify(Test $test) {

}

O eso, o el bloque de documentación:

/**
 * @param Test $test The test to run
 */

Depende de la IDE, y la forma en que recoge las sugerencias de tipo ... sé que NetBeans es lo suficientemente inteligente como para recoger el Testify(Test $test) sugerencia del tipo y le permiten ir de allí, pero algunos otros entornos de desarrollo no son tan inteligentes ... Así que realmente depende de su IDE qué respuesta le dará el completado automático ...

Otros consejos

Me iba a dar un simple "No" respuesta, entonces se encuentra en la sección Tipo Hinting en la documentación de PHP.

supongo que responde a eso.

<?php
class Test
{
   public $IsTested;

   public function Testify(Test $test)
   {
      // Testify can now only be called with an object of type Test
   }
}

No estoy seguro de Intellisense sabe de tipo dando a entender, sin embargo. Todo eso depende.

$test no es variable de clase. Tal vez usted quiere $this?

$this->IsTested;

o

public function Testify(Test $test)
{
   $test->IsTested;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top