0

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

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

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 回答