访问另一种方法的结果

时间:2016-03-23 11:14:48

标签: php

您好,我对OOP PHP相对较新,并试图了解一些概念。我有两种方法,一种是公共的,一种是私有的。

public function is参数由get值填充,然后使用private方法查询数据库。

public function viewProject($id) {

    if (!intval($id)) {
        $this->projectError = 'The requested project must be a numeric value';
        return false;
    }

    if (!$this->findProject($id)) {
        $this->projectError = 'The specified project was not found.';
        return false;
    }

    return true;
}

private function findProject($pid) {
    $data = $this->_db->get("projects", array('id', "=", $pid));
    return  $data->results();
}

我希望能够将findProject方法的结果存储在类似

的var中

$ this-> projectName = //此处显示名称

但是我不完全确定如何在公共方法中访问查询结果。

2 个答案:

答案 0 :(得分:1)

可以在该类的每个方法中访问类,public,protected和private的所有poperties。如果将projectName定义为(私有)属性,则可以在其他所有方法中访问它。

此外,您的查询结果可能是一个多维数组,因此您必须自己从结果中检索projectName值。

class A
{
    protected $projectName;

    public function viewProject($id) {
        if (!intval($id)) {
            $this->projectError = 'The requested project must be a numeric value';
            return false;
        }

        $results = $this->findProject($id);
        if (!$results) {
            $this->projectError = 'The specified project was not found.';
            return false;
        }

        //Parse results
        //assuming $this->_db->get() returns a multi-dimensional array
        //assuming 'projectName' corresponds is the db column name
        $this->projectName = $results[0]['projectName'];

        return true;
    }

    private function findProject($pid) {
        $data = $this->_db->get("projects", array('id', "=", $pid));
        return  $data->results();
    }
}

答案 1 :(得分:0)

尝试

public function viewProject($id) {
    if (!intval($id)) {
        $this->projectError = 'The requested project must be a numeric value';
        return false;
    }
    $this->$project = $this->findProject($id); //project has the value
    if (!$project) {
        $this->projectError = 'The specified project was not found.';
        return false;
    }



    return true;

}

private function findProject($pid) {
    $data = $this->_db->get("projects", array('id', "=", $pid));
    return  $data->results();

}

希望它有所帮助:)