为什么方法没有返回属性值?

时间:2012-07-09 00:01:37

标签: php oop

这是一个简单的类,其方法应返回已分配给属性“question”的字符串。为什么它不从方法输出中打印返回的属性值?

我没有收到任何错误消息,我得到的是“这里是:”但是该属性的值丢失了:(

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();

2 个答案:

答案 0 :(得分:1)

我在我的机器上完美地运行了这段代码,这意味着还有另一个问题(它不是代码)。检查您的PHP日志以及HTTP服务器的错误和访问日志,并(在开发服务器上)启用ini文件中的display_errors并查看发生了什么。

答案 1 :(得分: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();

如果你得到“这是:bug测试”,那么你的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版本。