0

これは、プロパティ「質問」に割り当てられた文字列を返すメソッドを持つ単純なクラスです。メソッド出力から返されたプロパティ値を出力しないのはなぜですか?

エラーメッセージは表示されません。表示されるのは「Here is:」だけですが、プロパティの値がありません:(

class DisplayQuestion {
    public $question;

    function __construct ($question){
        $this->question = $question;
    }   

    function output(){
        echo "<p>Here is: $this->question</p>";         
    }
}   
$test = new DisplayQuestion("What's your question?");
$test->output();
4

2 に答える 2

1

私は自分のマシンでそのコードを完全に実行します。つまり、別の問題があります (コードではありません)。PHP ログと HTTP サーバーのエラーおよびアクセス ログを確認し、(開発サーバーで) ini ファイルで display_errors を有効にして、何が起こっているかを確認します。

于 2012-07-09T00:09:31.513 に答える
0

これを試して:

class DisplayQuestion {
    public $question = "bug test";

    function __construct ($question){
        $this->question = $question;
    }   

    function output(){
        echo "<p>Here is: $this->question</p>";         
    }
}   
$test = new DisplayQuestion("What's your question?");
$test->output();

"Here is: bug test" と表示された場合、開発サーバーの PHP バージョンは 5 未満です。PHP 4 では、__construct はコンストラクターとして認識されないため、次のように置き換える必要があります。

class DisplayQuestion {
    var $question;

    function DisplayQuestion ($question){
        $this->question = $question;
    }   

    function output(){
        echo "<p>Here is: $this->question</p>";         
    }
}   
$test = new DisplayQuestion("What's your question?");
$test->output();

サーバーで phpinfo() を実行して、使用している PHP のバージョンを確認してください。

于 2012-07-09T00:44:14.170 に答える