2009-07-19 23 views
1

私はPHPでオブジェクト指向プログラミングを初めて学んでいます。私はクラスを含め、それを呼び、次に、このクラスのコンストラクタの中で私はhandleConnectionsという専用の関数を呼び出しています。何らかの理由で、それは私に致命的なエラー(未定義関数)を与えています。どんな考え?致命的なエラー:定義されていない関数 - なぜですか?

クラス:

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

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

それは完璧なようだと、まだ私はこのエラーを取得しています。もし誰かが間違っているかもしれない何か手がかりがあるなら、教えてください。ありがとう!

答えて

4

FWHの回答を拡張してください。

クラスを作成してそれを変数に代入すると、そのクラスの外から$ variable-> function();を使用してそのクラス内の任意の関数を呼び出します。しかし、あなたがクラスの中にいるので、クラスが何に割り当てられているのかわからないので、クラスプロパティにアクセスするには$ this->キーワードを使用する必要があります。通常の経験則では、$ obj-> varのようにアクセスする場合は$ this->でアクセスしてください。 Javaのような適切なオブジェクト指向言語で

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" 
+0

、クラスの中から、あなたはただ、これは、同様の変数に適用され、上の追加するには、この –

+0

を使用しなくてもそのメソッドやフィールドを呼び出すことができ、そしてそれは隠されたバグの原因です。 – Extrakun

4

で試してみてください:あなたは$これであなたの電話を接頭辞ない場合

$this->handleConnections(); 

、グローバル関数を呼び出すためにしようとしています。 $これはあいまい性がない場合でもPHPでは必須です。

関連する問題