1

PHPでのオブジェクト指向プログラミングは初めてです。クラスをインクルードして呼び出した後、このクラスのコンストラクター内で、handleConnections というプライベート関数を呼び出しています。何らかの理由で、致命的なエラー (未定義の関数) が表示されます。理由はありますか?

クラス:

class Test
{
   function __construct()
   {
      handleConnections();
   }

   private function handleConnections()
   {
      //do stuff
   }
}

完璧に見えますが、このエラーが発生しています。何が間違っているのか手がかりがあれば、教えてください。ありがとう!

4

2 に答える 2

4

試してみてください:

$this->handleConnections();

呼び出しの前に $this を付けない場合、グローバル関数を呼び出そうとしています。$this は、あいまいさがない場合でも、PHP では必須です。

于 2009-07-19T15:22:26.207 に答える
4

FWHの回答を拡張するだけです。

クラスを作成して変数に代入する場合、クラスの外部から $variable->function(); を使用してそのクラス内の任意の関数を呼び出します。ただし、クラスの内部にいるため、クラスが何に割り当てられているかがわからないため、 $this-> キーワードを使用してクラス プロパティにアクセスする必要があります。一般的な経験則として、$obj->var のようにアクセスする場合は、$this-> でアクセスします。

class myClass
{
    function myFunc()
    {
        echo "Hi";
    }

    function myOtherFunc()
    {
        $this->myFunc();
    }

}


$obj = new myClass;

// You access myFunc() like this outside
$obj->myFunc();

// So Access it with $this-> on the inside
$obj->myOtherFunc();

// Both will echo "Hi"
于 2009-07-19T15:29:36.910 に答える