質問

私は今PHP 5を使用しており、PHP 5でOOPを使用することは熱狂的です。問題が発生します。私はそれらの中にいくつかのクラスといくつかの機能を持っています。私が書いたクラスの対象である引数を渡す必要がある関数はほとんどありません。私が気づいた議論は厳密にタイプされていません。コンパイル時にIntellisenseを使用できるように、厳密にタイプする方法はありますか?

例:

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
   }
}
役に立ちましたか?

解決

まあ、あなたは使用できます タイプヒント あなたが望むことをするために:

public function Testify(Test $test) {

}

それか、ドックブロック:

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

IDEと、タイプのヒントをどのように拾うかに依存します... NetBeansはタイプヒントを拾うのに十分賢いことを知っています Testify(Test $test) そこからあなたを行かせましょうが、他のいくつかのIDはそれほど賢いわけではありません...だから、それは本当にあなたのIDEに依存していますか?

他のヒント

私は簡単な「いいえ」を与えるつもりでした答え、次にセクションを見つけました タイプヒント PHPドキュメントで。

それはそれに答えると思います。

<?php
class Test
{
   public $IsTested;

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

しかし、Intellisenseがタイプのヒントについて知っているかどうかはわかりません。それはすべて依存します。

$test クラス変数ではありません。多分あなたは欲しい $this?

$this->IsTested;

また

public function Testify(Test $test)
{
   $test->IsTested;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top