PHP:没有失败?如何使`echo $ report`通过`class validate`返回正确的值?

时间:2011-02-09 21:33:59

标签: php class function return-value

为什么echo $report有空值? class validate中的任何失败?

如何让它通过class validate返回正确的价值?

<?php
class validate{
    function status($status){
        header('Location:',true,$status);
        $report="Error: $status";
    }
    function fine(){
        $report='Ok!';
    }
}
$validate=new validate($id);
//$id=0;
$id=(isset($id) ? $id : NULL);
(($id==0) ? $validate->fine() : $validate->status('404'));
echo $report; // Why it has empty value? How to solve it?
?>

2 个答案:

答案 0 :(得分:1)

将其声明为类中的公共变量,使用$ this-&gt; report设置它,并使用$ validate-&gt; report回显它。

示例:

class validate{
    public $report;
    function status($status){
        header('Location:',true,$status);
        $this->report="Error: $status";
    }
    function fine(){
        $this->report='Ok!';
    }
}

答案 1 :(得分:0)

$ report是验证对象中的类变量。 echo $report正在寻找本地范围内的变量,而不是您的对象。请改为echo $validate->report