2016-12-29 7 views
0

私は質問の質問とは関係のあるプログラムを開発していますので、Questionクラスがあると想像してください。質問の静的関数を参照して質問項目を作成したければ、この変数を$ this変数に割り当てることができますか?

より一般的な視点に

は、クラスの$この変数の値を変更することが可能ですか?はいの場合、どうすればいいですか?さもなければ、$ thisを同じクラスの別のオブジェクトにフックできないのですか?

+0

あなたは何を試しているのか、何が必要なのかをコードで表示できますか? –

+3

http://php.net/manual/en/language.oop5.basic.phpで始める –

答えて

1

、私はあなたが何のためにあるのか$thisに少し霧だと思います。これは、単に利用されているクラスのインスタンスを参照する方法です。この参照はクラス内でのみ発生します。例えば

$questionOne = new Question("Who is the founder of Microsoft?", "Bill Gates"); 
$questionTwo = new Question("Who is the CEO of Apple, Inc?", "Tim Cook"); 

:我々は二つの異なる質問を作成する場合

$this->correctAnswer 

:決定する

class Question 
{ 
    function __construct($question, $correctAnswer) 
    { 
     $this->question = $question; 
     $this->correctAnswer = $correctAnswer; 
    } 

    function answerQuestion($answer) 
    { 
     if ($answer == $this->correctAnswer) { 
      return true; 
     } else { 
      return false; 
     } 
    } 
} 

お知らせ答えは、我々はに対して提供する答えを比較正しいかどうか同じ回答を返すと、異なる結果が得られます:

$isCorrect = $questionOne->answerQuestion("Tim Cook"); // FALSE 
$isCorrect = $questionTwo->answerQuestion("Tim Cook"); // TRUE 

これは、$thisが使用されているインスタンスを参照しているためです。

したがって、クラス内では$thisを使用します。 クラス外では、オブジェクト名を使用します。この場合:$questionOneまたは$questionTwo

私は事を明確にするのに役立ちます。

関連する問題