您好,我对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 = //此处显示名称
但是我不完全确定如何在公共方法中访问查询结果。
答案 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();
}
希望它有所帮助:)