Domanda

Sto usando PHP 5 ora e sono esuberante usare OOP in PHP 5. ho incontrato un problema. Ho avuto poche classi e alcune funzioni al loro interno. Poche funzioni richiedono argomenti da passare che sono oggetto di tali classi me stesso che ho scritto. Gli argomenti non sono strettamente tipizzati ho notato. C'è un modo per rendere più strettamente digitato in modo che al momento della compilazione potrei usare Intellisense?

Esempio:

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
   }
}
È stato utile?

Soluzione

Bene, si potrebbe usare tipo alludendo per fare quello che vuoi :

public function Testify(Test $test) {

}

O che, o il docblock:

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

Dipende dal IDE, e come si raccoglie i suggerimenti di tipo ... so che NetBeans è abbastanza intelligente per prendere il Testify(Test $test) tipo-suggerimento e consentono di passare da lì, ma alcuni altri IDE non sono così intelligenti ... Quindi, in realtà dipende il vostro IDE che risposta sarà ottenere il completamento automatico ...

Altri suggerimenti

I stava per dare un semplice "no" risposta, poi trovato la sezione Tipo Hinting nella documentazione di PHP.

Credo che le risposte che.

<?php
class Test
{
   public $IsTested;

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

Non sono sicuro Intellisense conosce tipo hinting, però. Che tutto dipende.

$test non è variabile di classe. Forse si vuole $this?

$this->IsTested;

o

public function Testify(Test $test)
{
   $test->IsTested;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top